使用线性布局填充列表视图,文本视图不匹配父级

时间:2016-03-08 10:04:18

标签: android listview android-linearlayout

我有一个列表视图,其中包含一个包含六个文本视图的线性布局。我希望膨胀文本视图的宽度与父级匹配,但其宽度是根据我从数据库获取的值设置的(获取包装)。我在线性布局中给textview赋予相同的权重,但所有textview的宽度都不同。文本视图的值来自使用JDBC连接的数据库。

列表视图布局是:

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff">

    <ListView
        android:id="@+id/lv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:divider="#0dcd6600"
        android:dividerHeight="2dp" >
    </ListView>

</HorizontalScrollView>

列表视图中膨胀的行是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="5dp"
    android:background="#ffffff"
    android:orientation="horizontal"
    android:weightSum="6" >

    <TextView
        android:id="@+id/txt_date"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/border1"
        android:padding="7dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/txt_sname"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/border1"
        android:padding="7dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/txt_standard"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/border1"
        android:padding="7dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/txt_division"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/border1"
        android:padding="7dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/txt_grno"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/border1"
        android:padding="7dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/txt_rollno"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/border1"
        android:padding="7dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />

</LinearLayout>

到目前为止,我已经尝试了以下所有选项,没有任何效果。

  1. 更改 view = inflater.inflate(R.layout.list_item_attendance,null);

    view = inflater.inflate(R.layout.list_item_attendance,parent,false);
  2. 将列表视图的宽度设置为match_parent
  3. 为所有文本视图制作六个线性布局,并使它们与父级匹配。
  4. 这是布局的image,这是不合适的。文本字段没有对齐。

    我希望它如何,就像this

2 个答案:

答案 0 :(得分:0)

由于Horizo​​ntalScrollView中的listview,这种情况正在发生。如果列表视图位于水平滚动视图中,则权重和权重不起作用..

答案 1 :(得分:0)

这不是解决方案,但我认为你错了。不要将scrollview用作父级。请尝试一次。希望它能奏效。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff" >

        <ListView
            android:id="@+id/lv"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" >
        </ListView>
    </HorizontalScrollView>

</LinearLayout>