无法在布局中创建视图

时间:2014-06-13 07:18:04

标签: android android-layout listview android-xml

我有一个带有自定义适配器的ListView,所以我可以自定义单行。我会在左边的布局中创建一个视图,其高度为所有行高,宽度为5dp。所以它会像一个小小的" strip"在listview中每行的左侧。我试过这种方式

<?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:layout_margin="5dp"
    android:background="@layout/cardwhite"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/first"
        android:layout_toRightOf="@+id/viewlist"
        android:layout_marginLeft="5dp"
        android:textSize="15dp"
        android:fontFamily="sans-serif-light"
        android:text="Partenza "
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <View 
        android:id="@id/viewlist"
        android:gravity="left"
        android:layout_width="5dp"
        android:background="#52BD4F"
        android:layout_margin="5dp"
        android:layout_height="match_parent"
    />
    <TextView
        android:id="@+id/second"
        android:layout_toRightOf="@id/viewlist"
        android:layout_below="@id/first"
        android:textSize="15dp"
        android:layout_marginLeft="5dp"
        android:fontFamily="sans-serif-light"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>


</RelativeLayout>

但使用android:layout_height="match_parent"android:layout_height="wrap_content"不起作用且条带不会出现。如果我写android:layout_height="20dp"它会去,但当然不是&#34;动态&#34;。我不明白为什么它会消失......有什么想法吗?

4 个答案:

答案 0 :(得分:1)

请相应修改布局。我已经完成了这个,所以我只是粘贴它。您只需在android:layout_alignBottom内使用android:layout_alignTopid View。这是屏幕截图!

ScreenShot

<?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="#e5e4e2" >

    <RelativeLayout
        android:id="@+id/relative_row"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="@drawable/btn_normal" >

        <TextView
            android:layout_width="5dp"
            android:layout_height="match_parent"
            android:layout_alignBottom="@+id/tv_type"
            android:layout_alignTop="@+id/tv_dayName"
            android:background="#00ff00" />

        <TextView
            android:id="@+id/tv_dayName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_gravity="center_vertical"
            android:padding="5dp"
            android:layout_marginLeft="5dp"
            android:text="Monday"
            android:textColor="#000000"
            android:textSize="14sp" >
        </TextView>

        <TextView
            android:id="@+id/tv_dateNumber"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_gravity="center_vertical"
            android:padding="5dp"
            android:text="23"
            android:textColor="#000000"
            android:textSize="14sp" >
        </TextView>

        <TextView
            android:id="@+id/tv_type"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tv_dayName"
            android:layout_gravity="center_vertical"
            android:padding="5dp"
            android:layout_marginLeft="5dp"
            android:text="Mark Attendance"
            android:textColor="#000000"
            android:textSize="12sp" >
        </TextView>

        <TextView
            android:id="@+id/tv_monthName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/tv_dateNumber"
            android:layout_gravity="center_vertical"
            android:padding="5dp"
            android:text="Apr-14"
            android:textColor="#000000"
            android:textSize="12sp" >
        </TextView>
    </RelativeLayout>

    <!--
          <TextView android:id="@+id/tv_line"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_marginTop="5dp"
        android:background="@drawable/text_line"
        android:layout_below="@+id/relative_row"/>
    -->

</RelativeLayout>

答案 1 :(得分:0)

这是一个小技巧。不是给视图赋予高度,而是使用TextView并将Height作为MatchParant给出,并根据需要设置TextSize并将背景颜色设置为TextView。希望这能帮到你!

<TextView
   android:id="@+id/col_status"
   android:layout_width="5dp"
   android:layout_height="match_parent"
   android:layout_marginBottom="3dp"
   android:layout_marginLeft="3dp"
   android:layout_marginTop="3dp"
   android:background="#FFFFFF"
   android:rotation="180"
   android:textColor="@color/main_list_text"
   android:textSize="12sp" />

答案 2 :(得分:0)

<?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:layout_margin="5dp"
    android:background="@layout/cardwhite"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/first"
        android:layout_toRightOf="@+id/viewlist"
        android:layout_marginLeft="5dp"
        android:textSize="15dp"
        android:fontFamily="sans-serif-light"
        android:text="Partenza "
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <View 
        android:id="@id/viewlist"
        android:gravity="left"
        android:layout_alignTop="@+id/first"
        android:layout_alignBottom="@+id/second"
        android:layout_width="5dp"
        android:background="#52BD4F"
        android:layout_margin="5dp"
        android:layout_height="match_parent"
    />
    <TextView
        android:id="@+id/second"
        android:layout_toRightOf="@id/viewlist"
        android:layout_below="@id/first"
        android:textSize="15dp"
        android:layout_marginLeft="5dp"
        android:fontFamily="sans-serif-light"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>


</RelativeLayout>

答案 3 :(得分:0)

不要使用相对布局,只需使用linearLayout

<强>样品:

请注意,我没有你的cardwhite图像,所以它看起来不像你发布的图像,只是将图像放在线性布局背景中,它看起来就像你发布的图像一样。 / p>

   <?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:layout_margin="5dp"
    android:background="@layout/cardwhite"
    android:orientation="horizontal" >

    <View
        android:id="@id/viewlist"
        android:layout_width="5dp"
        android:layout_height="match_parent"
        android:background="#52BD4F" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/first"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:fontFamily="sans-serif-light"
            android:text="Customer 1"
            android:textSize="15dp" />

        <TextView
            android:id="@+id/second"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:fontFamily="sans-serif-light"
            android:text="Meeting"
            android:textSize="20dp" />
    </LinearLayout>

</LinearLayout>

<强>结果:

enter image description here