在线性布局android内的相对布局中包装文本

时间:2015-09-09 07:40:22

标签: android android-layout

我的listview中的项目布局。我在列表视图中使用的每个项目都使用此布局。布局代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal"
android:id="@+id/view">


<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:layout_weight="40"
    android:paddingBottom="10dp"
    android:paddingTop="10dp" >

    <TextView
        android:id="@+id/messages_list_element_textview_header"
        style="@style/category_list_textview"
        android:layout_alignParentLeft="true"
        android:padding="5dp"
        android:maxLines="5"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:textColor="@color/bg_login"
        android:textSize="14sp"
        android:text="some text"
        android:inputType="textImeMultiLine" />

    <TextView
        android:id="@+id/messages_list_element_textview_view"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_centerVertical="true"
        android:layout_below="@+id/messages_list_element_textview_header"
        android:textColor="@color/bg_login"
        android:textSize="12sp"
        android:text="some text"
        android:layout_marginLeft="5dp"
        android:padding="5dp" />

</RelativeLayout>
<TextView
    android:id="@+id/messages_list_element_name"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_weight="60"
    android:text="some text"
    android:padding="5dp"/>
 </LinearLayout>

我使用id&#39; messages_list_element_textview_header&#39;填充到textview的文本。不包裹。我在下面使用的textview(&#39; messages_list_element_textview_view&#39;)用于显示日期,所以我不想把它包起来。

有人可以告诉我如何获得&#39; messages_list_element_textview_header&#39;包装。

由于

2 个答案:

答案 0 :(得分:0)

fill_parent

(在API级别8及更高级别中已弃用并重命名为MATCH_PARENT)

将窗口小部件的布局设置为fill_parent将强制它扩展以占用放置在其中的布局元素中可用的空间。它大致相当于设置码头样式一个Windows窗体控件来填充。

将顶级布局或控件设置为fill_parent将强制它占据整个屏幕。

wrap_content

将视图的大小设置为wrap_content将强制它扩展到足以包含它包含的值(或子控件)。对于控件 - 如文本框(TextView)或图像(ImageView) - 这将包装正在显示的文本或图像。对于布局元素,它将调整布局大小以适合作为其子项添加的控件/布局。

wrap_content 

将根据您的文字大小和文字数量进行调整。它总是更可取的。否则,您可以根据需要设置dp 60dp增加或减少

 <?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="wrap_content"
  android:background="@color/white"
  android:orientation="horizontal"
  android:id="@+id/view">


  <RelativeLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:layout_weight="40"
    android:paddingBottom="10dp"
    android:id="@+id/relative"
    android:paddingTop="10dp" >

    <TextView
        android:id="@+id/messages_list_element_textview_header"
        style="@style/category_list_textview"
        android:layout_alignParentLeft="true"
        android:padding="5dp"
        android:maxLines="5"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:textColor="@color/bg_login"
        android:textSize="14sp"
        android:text="some text"
        android:inputType="textImeMultiLine" />

    <TextView
        android:id="@+id/messages_list_element_textview_view"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_centerVertical="true"
        android:layout_below="@+id/messages_list_element_textview_header"
        android:textColor="@color/bg_login"
        android:textSize="12sp"
        android:text="some text"
        android:layout_marginLeft="5dp"
        android:padding="5dp" />

</RelativeLayout>
<TextView
    android:id="@+id/messages_list_element_name"
    android:layout_width="0dp"
    android:layout_below="@+id/relative"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_weight="60"
    android:text="some text"
    android:padding="5dp"/>
</RelativeLayout>

答案 1 :(得分:0)

要嵌套布局,必须有适当的缩进。您的缩进有误。最外面的线性布局必须包装相对布局(相对布局应相距1个制表符空间)。