Ich möchte Fortschrittsbalken (Spinner) auf der rechten Seite von editText anzeigen, wenn Aktivität einige Verarbeitung und ausblenden nach Abschluss, gibt es eine einfache Möglichkeit, dies zu tun?android Fortschrittsbalken innerhalb edittext
Antwort
würde ich RelativeLayout
, so etwas wie folgt verwenden:
<RelativeLayout>
<EditText
android:id="@+id/the_id"/>
<ProgressBar
style="?android:attr/progressBarStyleSmall"
android:layout_alignTop="@id/the_id"
android:layout_alignBottom="@id/the_id"
android:layout_alignRight="@id/the_id"/>
</RelativeLayout>
Try this ...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:ems="10"
android:hint="@string/app_name"
android:inputType="textNoSuggestions"
android:padding="8dp" >
</EditText>
<ProgressBar
style="?android:attr/progressBarStyleInverse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/editText"
android:layout_alignRight="@id/editText"
android:layout_alignTop="@id/editText" />
</RelativeLayout>
</LinearLayout>
Späte Antwort, aber vielleicht wird jemand diese verwenden.
Ich habe eine neue Ansicht erstellt, die tatsächlich die Arbeit für mich erledigt.
Also, zunächst einmal erstellen xml Layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.view.InstantAutoComplete
android:id="@+id/custom_edit_text_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/layout_padding"/>
<ProgressBar
android:id="@+id/custom_edit_text_progress_bar"
style="@style/SmallProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:visibility="gone"/>
</RelativeLayout>
nun eine Java-Klasse:
public class CustomEditText extends RelativeLayout {
private LayoutInflater mInflater = null;
private AutocompleteEditText mEditText;
private ProgressBar mProgressBar;
private boolean mIsRefreshing = false;
private int textColor;
private int hintTextColor;
private String hint;
private int textSize;
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
initViews(attrs);
}
public CustomEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initViews(attrs);
}
private void initViews(AttributeSet attrs) {
mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mInflater.inflate(R.layout.custom_layout_edit_text, this, true);
mEditText = (AutocompleteEditText) findViewById(R.id.custom_edit_text_edit_text);
mProgressBar = (ProgressBar) findViewById(R.id.custom_edit_text_progress_bar);
mProgressBar.getLayoutParams().height = mEditText.getLayoutParams().height - 30;
mProgressBar.getLayoutParams().width = mEditText.getLayoutParams().height - 30;
mProgressBar.requestLayout();
TypedArray a = getContext().getTheme().obtainStyledAttributes(attrs, R.styleable.CustomEditText, 0, 0);
try {
textColor = a.getInteger(R.styleable.CustomEditText_textColor, R.color.black);
hint = a.getString(R.styleable.CustomEditText_hint);
hintTextColor = a.getInteger(R.styleable.CustomEditText_hintTextColor, R.color.black);
textSize = a.getDimensionPixelSize(R.styleable.CustomEditText_textSize, R.dimen.text_medium_size);
} finally {
a.recycle();
}
mEditText.setTextColor(textColor);
mEditText.setHint(hint);
mEditText.setHintTextColor(hintTextColor);
mEditText.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
}
public void setRefreshing(boolean isVisible) {
if (isVisible) {
if (!mIsRefreshing) {
mIsRefreshing = true;
mProgressBar.setVisibility(VISIBLE);
}
} else {
if (mIsRefreshing) {
mIsRefreshing = false;
mProgressBar.setVisibility(GONE);
}
}
}
public AutocompleteEditText getEditText() {
return mEditText;
}
public ProgressBar getProgressBar() {
return mProgressBar;
}
}
Definieren Sie Ihre Attribute, so dass Sie es in XML verwenden können. In Ihren Werten Ordner, erstellen Sie eine XML-Datei mit dem Namen attrs:
<resources>
<declare-styleable name="CustomEditText">
<attr name="hint" format="string"/>
<attr name="textColor" format="color"/>
<attr name="textSize" format="dimension"/>
<attr name="hintTextColor" format="color"/>
</declare-styleable>
</resources>
Und es schließlich in Ihnen Aktivität/Fragment verwenden wie:
<com.CustomEditText
android:id="@+id/reply_to_request_main_course_edit_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/layout_padding"
android:layout_weight="1"
app:textColor="@color/black"
app:textSize="@dimen/text_medium_size"/>
Sie Objekt in der Aktivität/Fragment instansiate. Wenn Sie die Statusleiste sichtbar sein anrufen möchten, geben Sie einfach
mEditText.setRefreshing(true/false);
Können Sie uns die color.xml und dimen.xml Werte hinzufügen, die Sie verwendet? – 4gus71n
Danke das ist genau das, was ich suchte – mkso