android progressbar里面的edittext

我想在活动进行一些处理时将editbar(spinner)显示在editText的右侧,并在完成后隐藏,是否有一种简单的方法可以做到这一点?

Related of "android progressbar里面的edittext"

我会使用RelativeLayout ,如下所示:

     

尝试这个…

        

迟到的答案,但是,也许有人会用这个。

我创建了一个实际上为我工作的新视图。

所以,首先,创建布局xml:

 < ?xml version="1.0" encoding="utf-8"?>     

现在,一个java类:

 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; } } 

定义属性,以便在xml中使用它。 在values文件夹中,创建名为attrs的.xml文件:

         

最后在你的活动/片段中使用它:

  

您在activity / fragment中实例化对象。 如果要将进度条调用为可见,只需键入即可

 mEditText.setRefreshing(true/false); 

使用FrameLayout以最佳方式实现此目的。 FrameLayout帮助我们在EditText中添加ProgressBar。 检查一下:

     

结果:

在此处输入图像描述