我正在处理布局文件。此布局要求图标应始终在单行TextView之后。如果TextView太长,那么TextView是ellipsize并且应该显示图标。例如:
情况1:[[textview] [icon1] [icon2]]
情况2:[[textview ......] [icon1] [icon2]]。
我在here找到了类似的案例,但它对我不起作用。
我目前的代码是这样的:
<RelativeLayout
android:id="@+id/parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="left">
<!-- icon show here -->
<LinearLayout
android:id="@+id/icons"
android:paddingLeft="5dp"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical|left">
</LinearLayout>
<!--text show here-->
<TextView
android:id="@+id/text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_toLeftOf="@id/icons"
android:singleLine="true"
android:ellipsize="end"
android:gravity="left"/>
</RelativeLayout>
LinearLayout用于在从服务器获取数据时添加图标。 Android的布局预览就像上面的情况,但是apk运行在这样的设备上:
情况1:[[textview] [icon1] [icon2]]
情况2:[[textview ......] [icon1] [icon2]]。
我真的很困惑。有人对这种情况有一些看法吗?提前谢谢。
我发现Android 4.3之后的代码运行正常(包括4.3,我没有测试4.2),它在Android 4.3下无法运行。我认为不同的Android系统以不同的方式解析这些布局参数。比如某些版本认为父容器布局的参数比子视图更重要。
答案 0 :(得分:1)
最后,我得到了我的愚蠢情况。但它有效。我会给你代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!--text show here-->
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:layout_weight="1" />
<!-- icons show here -->
<LinearLayout
android:id="@+id/icons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="right"/>
</LinearLayout>