如何使TextView看起来与EditText完全一样?

时间:2016-01-17 14:26:54

标签: android android-edittext textview

如何使整个TextView以匹配父的宽度下划线,如EditText?

这行代码只是强调文本,而不是整个TextView。

textView.setPaintFlags(textView.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);

我想使用TextView的原因是,一次点击即可立即触发setOnClickListener,而禁用可编辑的EditText则需要两次点击。

2 个答案:

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