我有这个布局。我的问题是,当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>
答案 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一个更高的权重。 我希望这会对你有所帮助