内容简介:翻译自:https://stackoverflow.com/questions/12576529/android-how-to-put-cross-icon-on-top-of-the-autocomplete-textview
我在将十字按钮放在textview顶部时遇到了问题.我正在使用LinearLayout并且它没有出现,而在Framelayout它工作,但这不能解决我的目的.我附上我的 XML
作为参考,请帮助我克服这个问题.
<LinearLayout
android:id="@+id/top"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/phone_toolbar"
android:baselineAligned="true"
android:gravity="center_horizontal"
android:paddingBottom="2dp"
android:paddingTop="2dp" >
<ImageView
android:id="@+id/search_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:background="@drawable/toolbar_search_icon_phone" >
</ImageView>
<AutoCompleteTextView
android:id="@+id/text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="10dp"
android:layout_weight="2"
android:background="@drawable/toolbar_phone_textfield"
android:dropDownVerticalOffset="5dp"
android:ems="10"
android:focusable="true"
android:hint="@string/hint"
android:imeOptions="actionSearch"
android:paddingLeft="10dp"
android:paddingRight="20dp"
android:singleLine="true"
android:textColor="#000000"
android:textSize="14sp" />
<Button
android:id="@+id/clear_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_marginRight="10dip"
android:background="@drawable/text_clear" />
</LinearLayout>
谢谢!
在EditText上使用android:drawableLeft属性.
<EditText ... android:drawableLeft="@drawable/my_icon" />
如果要动态添加图标,请使用以下命令:
EditText et = (EditText) findViewById(R.id.myET); et.setCompoundDrawablesWithIntrinsicBounds(R.drawable.my_icon, 0, 0, 0);
要处理点击事件:
String value = "";//any text you are pre-filling in the EditText
final EditText et = new EditText(this);
et.setText(value);
final Drawable x = getResources().getDrawable(R.drawable.presence_offline);//your x image, this one from standard android images looks pretty good actually
x.setBounds(0, 0, x.getIntrinsicWidth(), x.getIntrinsicHeight());
et.setCompoundDrawables(null, null, value.equals("") ? null : x, null);
et.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (et.getCompoundDrawables()[2] == null) {
return false;
}
if (event.getAction() != MotionEvent.ACTION_UP) {
return false;
}
if (event.getX() > et.getWidth() - et.getPaddingRight() - x.getIntrinsicWidth()) {
et.setText("");
et.setCompoundDrawables(null, null, null, null);
}
return false;
}
});
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
et.setCompoundDrawables(null, null, et.getText().toString().equals("") ? null : x, null);
}
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
});
这也可以使用自定义EditText来完成:
翻译自:https://stackoverflow.com/questions/12576529/android-how-to-put-cross-icon-on-top-of-the-autocomplete-textview
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- [Java] 蓝桥杯PREV-2 历届试题 打印十字图
- 减半临近、挖矿利润下降,比特币矿工站在决策十字路口
- 十字符病毒,杀不死的小强:一次云服务器沦陷实录
- c# – 如何将两个图标合并在一起? (在另一个图标上叠加一个图标)
- Bootstrap 图标集 v1.2.0 发布 —— 喜提 CSS 图标字体!
- Bootstrap 图标集 v1.2.0 发布 —— 喜提 CSS 图标字体!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First HTML and CSS
Elisabeth Robson、Eric Freeman / O'Reilly Media / 2012-9-8 / USD 39.99
Tired of reading HTML books that only make sense after you're an expert? Then it's about time you picked up Head First HTML and really learned HTML. You want to learn HTML so you can finally create th......一起来看看 《Head First HTML and CSS》 这本书的介绍吧!