如何使整个TextView以匹配父的宽度下划线,如EditText?
这行代码只是强调文本,而不是整个TextView。
textView.setPaintFlags(textView.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
我想使用TextView的原因是,一次点击即可立即触发setOnClickListener,而禁用可编辑的EditText则需要两次点击。
答案 0 :(得分:40)
您可以在TextView上放置EditText的背景。例如:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your text"
android:hint="My hint"
android:textColor="?attr/editTextColor"
android:background="?attr/editTextBackground"
android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceMediumInverse"
/>
如果您使用的是AppCompat主题,则可能需要将文本外观更改为android:textAppearance="@style/TextAppearance.AppCompat.Button"
。
答案 1 :(得分:7)
您可以在不编写多行xml属性的情况下实现此目的:
@Override
public int getItemViewType(int position) {
if (datas.get(position).getType() == Utils.OUTGOING) {
return Utils.OUTGOING;
} else {
return Utils.INCOMING;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
switch (viewType) {
case Utils.OUTGOING:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.chat_bubble_outgoing, parent, false);
return new OUTGOINGHolder(view);
case Utils.INCOMING:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.chat_bubble_incoming, parent, false);
return new INCOMINGHolder(view);
}
return null;
}