问题描述
|
我有以下线性布局用于listitem。
<ImageView android:id=\"@+id/icon\"
android:src=\"@android:drawable/ic_input_add\"
android:layout_height=\"wrap_content\"
android:layout_width=\"22px\"
android:layout_marginTop=\"4px\"
android:layout_marginRight=\"4px\"
android:layout_marginLeft=\"1px\" />
<LinearLayout android:id=\"@+id/linearLayout1\"
android:orientation=\"vertical\"
android:layout_height=\"wrap_content\"
android:layout_width=\"wrap_content\">
<TextView android:layout_width=\"wrap_content\"
android:text=\"LongerTextView\"
android:id=\"@+id/textView1\"
android:layout_height=\"wrap_content\"/>
<TextView android:layout_width=\"wrap_content\"
android:text=\"TextView\"
android:id=\"@+id/textView2\"
android:layout_height=\"wrap_content\"/>
</LinearLayout>
<LinearLayout android:id=\"@+id/linearLayout2\"
android:layout_height=\"match_parent\"
android:layout_width=\"fill_parent\"
android:gravity=\"right\">
<ImageView android:layout_marginTop=\"4px\"
android:src=\"@android:drawable/ic_input_add\"
android:layout_marginLeft=\"1px\"
android:layout_height=\"wrap_content\"
android:layout_marginRight=\"1px\"
android:id=\"@+id/icon2\"
android:layout_width=\"22px\"/>
</LinearLayout>
该布局应该在左侧显示图像,并一直在右侧显示图像,中间有两个文本项。只要文本不比屏幕宽,此方法就可以正常工作。文字越长,我的右侧图标就会被推离屏幕。
应该将文本换行到新行,并且应该始终显示左右图标。
我该如何实现?
解决方法
尝试使用相对布局
在相对布局中,您可以使用layout_alignParentLeft = \“ true \”指定图像(例如,ID:imgLeft),该图像将保留在左侧
然后另一个图像(imgRight)具有layout_alignParentRight = \“ true \”,将保留在右侧
然后是包含以下内容的线性布局:
layout_toLeftOf = \“ @ id / imgRight \”和layout_toRightOf = \“ imgLeft \”
, 我已经根据您的要求重新设计了您的xml。使用以下代码。
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<RelativeLayout
xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\"
android:background=\"#ffffff\">
<ImageView
android:id=\"@+id/icon\"
android:src=\"@android:drawable/ic_input_add\"
android:layout_height=\"wrap_content\"
android:layout_width=\"22px\"
android:layout_marginTop=\"4px\"
android:layout_marginRight=\"4px\"
android:layout_marginLeft=\"1px\"></ImageView>
<LinearLayout
android:id=\"@+id/linearLayout2\"
android:layout_height=\"match_parent\"
android:layout_width=\"wrap_content\"
android:gravity=\"right\"
android:layout_alignParentRight=\"true\">
<ImageView
android:layout_marginTop=\"4px\"
android:src=\"@android:drawable/ic_input_add\"
android:layout_marginLeft=\"1px\"
android:layout_height=\"wrap_content\"
android:layout_marginRight=\"1px\"
android:id=\"@+id/icon2\"
android:layout_width=\"wrap_content\"></ImageView>
</LinearLayout>
<LinearLayout
android:id=\"@+id/linearLayout1\"
android:orientation=\"vertical\"
android:layout_height=\"wrap_content\"
android:layout_width=\"wrap_content\"
android:layout_toRightOf=\"@+id/icon\"
android:layout_toLeftOf=\"@+id/linearLayout2\">
<TextView
android:layout_width=\"wrap_content\"
android:text=\"LongerTextView\"
android:id=\"@+id/textView1\"
android:layout_height=\"wrap_content\"></TextView>
<TextView
android:layout_width=\"wrap_content\"
android:text=\"TextView\"
android:id=\"@+id/textView2\"
android:layout_height=\"wrap_content\"></TextView>
</LinearLayout>
</RelativeLayout>
如果我的回复对您有帮助,请不要忘记投票。
谢谢
迪帕克
, IIRC(未经测试,但我可以在大约8个小时内完成)可以丢失第三个LinearLayout(包装第二个ImageView的那个)。然后设置将TextViews包装到中心的LinearLayout的android:gravity。