如果其他文本很长,TextView会隐藏

时间:2015-05-28 07:30:24

标签: android textview

我有这个布局。我的问题是,当txtName的值很长时,无法看到txtAge。请帮我解决这个问题,而不使用属性maxWidth。提前谢谢。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/txtName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textColor="@color/white"
        android:textSize="@dimen/textLarge" />

    <TextView
        android:id="@+id/txtAge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textColor="@color/white"
        android:textSize="@dimen/textLarge" />
</LinearLayout>

4 个答案:

答案 0 :(得分:1)

相对布局它更适合定位,尝试使用此代码:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:padding="30dp">

    <TextView
        android:id="@+id/txtName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textSize="9pt"
        android:text="Name Surname"/>

    <View
        android:id="@+id/separator"
        android:layout_width="1dp"
        android:layout_height="5dp"
        android:layout_marginRight="-20dp"
        android:layout_alignRight="@+id/txtName"/>

    <TextView
        android:id="@+id/txtAge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/separator"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textSize="9pt"
        android:text="Age"/>
</RelativeLayout>

告诉我,如果我可以帮助你,祝你好运!

Pd:我使用视图作为分隔符,因为我使用API​​&gt; 13如果您使用API​​&gt; = 17,您可以使用此命令android:layout_alignEnd =“”或android:layout_alignStart =“”。

最终的解决方案是:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:padding="30dp">

    <TextView
        android:id="@+id/txtName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:layout_alignRight="@+id/separator"
        android:layout_alignParentLeft="true"
        android:singleLine="true"
        android:textSize="9pt"
        android:text="Name Surname"/>

    <View
        android:id="@+id/separator"
        android:layout_width="1dp"
        android:layout_height="5dp"
        android:layout_alignLeft="@+id/txtAge"
        android:layout_marginLeft="-10dp"/>

    <TextView
        android:id="@+id/txtAge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/txtName"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textSize="9pt"
        android:text="Age"/>
</RelativeLayout>

答案 1 :(得分:1)

使用下面的代码,解决了你的问题。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:weightSum="2"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/txtName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textColor="@color/white"
        android:textSize="@dimen/textLarge" />

    <TextView
        android:id="@+id/txtAge"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textColor="@color/white"
        android:textSize="@dimen/textLarge" />
    </LinearLayout>

或者,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/txtName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:layout_weight="1"
        android:textColor="@android:color/black"
        android:text="Some n"
        android:textSize="23sp" />

    <TextView
        android:id="@+id/txtAge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:text="age"
        android:layout_weight="1"
        android:minEms="3"
        android:textColor="@android:color/black"
        android:textSize="23sp" />
    </LinearLayout>

答案 2 :(得分:0)

尝试使用此功能。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal" >

<com.klab.lods.en.custom.views.LDTextViewBold
    android:id="@+id/txtName"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:singleLine="true"
    android:textColor="#000000"
    android:textSize="@dimen/activity_horizontal_margin" />

<com.klab.lods.en.custom.views.LDTextViewBold
    android:id="@+id/txtAge"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:singleLine="true"
    android:textColor="#000000"
    android:textSize="@dimen/activity_horizontal_margin" />

答案 3 :(得分:-1)

你可以给你的TextViews一个这样的重量:

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal" >

<com.klab.lods.en.custom.views.LDTextViewBold
    android:id="@+id/txtName"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:singleLine="true"
    android:textColor="@color/white"
    android:textSize="@dimen/textLarge" />

<com.klab.lods.en.custom.views.LDTextViewBold
    android:id="@+id/txtAge"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:singleLine="true"
    android:textColor="@color/white"
    android:textSize="@dimen/textLarge" />

赋予宽度0dp和权重1两者将使它们在LinearLayout内使用相同的空间。如果你想让你的txtName textView大于txtAge,那么只需给txtName一个更高的权重。 我希望这会对你有所帮助