带有包装内容的Android LinearLayout问题

问题描述

| 我有以下线性布局用于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。