【问题标题】:TextView and EditText overflowTextView 和 EditText 溢出
【发布时间】:2015-04-20 16:21:57
【问题描述】:

我需要在一行中显示和TextView(label)、EditText(Input)和TextView(suffix)。

我遇到的问题是 - 如果标签 TextView 太长,则 EditText 和后缀 TextView 并没有绘制。

这是我的代码。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
    android:layout_weight="0"
    android:padding="5dp"
    android:text="Label"
    android:id="@+id/label_text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<EditText
    android:layout_weight="1"
    android:id="@+id/input_edit_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColorHint="@color/dark_grey"
    android:textColor="@color/black"
    android:hint="text.." />

<TextView
    android:padding="5dp"
    android:layout_weight="0"
    android:text="Suffix.."
    android:background="@color/lite_grey"
    android:id="@+id/suffix_text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

所以我想要的是 - 即使标签超过 2-3 行,EditText 也会出现在另一个 TextView 之后。

任何指针将不胜感激。

谢谢!

编辑: 我添加了一些“图表”,以便您更好地理解我想要做的事情。

EditText 的标签可以是任意长度(2/3 行),所以每当标签完成时,我希望 EditText 开始(后面是另一个显示后缀的 TextView..)

.. ![这显示了一个 2 行标签和 TextView..]

编辑 2: 感谢大家的回复!!我认为@questioner 真的明白我想要做什么,即我希望你的 3 个视图移动到其他行,这样它们的行为就像是一个视图 - 正如他所建议的那样,我必须为此找到一个库!

【问题讨论】:

    标签: android android-layout textview


    【解决方案1】:

    这个怎么样:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_gravity="center_vertical"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">
    
    <TextView
        android:padding="5dp"
        android:text="Label"
        android:id="@+id/label_text_view"
        android:layout_width="100dp"
        android:layout_gravity="center_vertical"
        android:layout_height="wrap_content"/>
    
    <EditText
        android:layout_weight="1"
        android:id="@+id/input_edit_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textColorHint="@color/dark_grey"
        android:textColor="@color/black"
        android:hint="text.."/>
    
    <TextView
        android:padding="5dp"
        android:text="Suffix.."
        android:layout_gravity="center_vertical"
        android:background="@color/lite_grey"
        android:id="@+id/suffix_text_view"
        android:layout_width="100dp"
        android:layout_height="wrap_content"/>
    </LinearLayout>
    

    如果您希望您的 3 个视图移动到其他行,以便它们表现得像一个视图 - 您应该为此使用外部库。

    【讨论】:

      【解决方案2】:

      为什么不使用RelativeLayout 而不是LinearLayout,然后使用android:layout_below="@+id/..."android:layout_above="@+id/..." 也使用android:layout_toRightOf="@+id/..."android:layout_toLeftOf="@+id/..."

      【讨论】:

        【解决方案3】:

        设置

        android:layout_weight="1"
        

        对于每个视图,使它们都占据相同数量的水平空间。

        【讨论】:

        • 没有给我我想要的 - 如果标签很长,我最终会得到 3 列......!我要LabelTextView,后跟EditText,后跟SuffixTextView 一个接一个
        • 水平还是垂直?您能否上传一张图片,以便我们确切知道您希望如何调整视图大小?
        【解决方案4】:
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_gravity="center_vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="1">
        

        试试这个,或者再扩展一点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-16
          • 2012-06-02
          相关资源
          最近更新 更多