1

所以这是我的代码,我必须手动插入我不想做的行的高度。我希望我的其他内容大小来确定我的列表视图项的高度,我希望我的垂直线简单地填充顶部到底部。目前它仅在我手动设置 dp 时才有效 - 如何使用 fill_parent 来实现?当我尝试使用 fill_parent 时,该行甚至不显示(永远)。

我的列表视图项目的父项:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background_repeatable"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin_venue"
    android:paddingRight="@dimen/activity_horizontal_margin_venue"
    android:paddingTop="5dp"
    tools:context=".CategoriesActivity" >
    <ListView
        android:id="@+id/categoriesList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:divider="@android:color/transparent"
        android:dividerHeight="@dimen/my_padding"
        android:drawSelectorOnTop="false"
        android:listSelector="@drawable/list_view_item_background_on_click"
        android:text="@color/White"
        android:textAlignment="center"
        android:visibility="visible" >
    </ListView>
</RelativeLayout>

实际的列表视图元素视图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/list_view_item_background"
    android:gravity="center_vertical"
    android:paddingBottom="3dp"
    android:paddingLeft="3.5dp"
    android:paddingRight="@dimen/listview_item_left_right_padding"
    android:paddingTop="3dp" >
    <View
        android:id="@+id/vertical_line"
        android:layout_width="3dip"
        android:layout_height="65dp" **I want this to be fill_parent**
        android:layout_alignParentLeft="true"
        android:layout_marginRight="5dp"
        android:background="@color/SkyBlue2" />
    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:paddingTop="@dimen/listview_item_top_bottom_padding"
        android:layout_toRightOf="@+id/vertical_line"
        android:textColor="@color/White"
        android:text="Bars and Grills"
        android:textSize="@dimen/titleTextSize"
        android:textStyle="bold"/>
    <TextView
        android:id="@+id/venue_count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/name"
        android:paddingBottom="@dimen/listview_item_top_bottom_padding"
        android:layout_toRightOf="@+id/vertical_line"
        android:textColor="@color/White"
        android:text="20"
        android:paddingLeft="5dp"
        android:textSize="@dimen/subtitleTextSize"/>
    <TextView
        android:id="@+id/venue_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/name"
        android:layout_toRightOf="@+id/venue_count"
        android:paddingBottom="@dimen/listview_item_top_bottom_padding"
        android:textColor="@color/White"
        android:text="locations"
        android:paddingLeft="3dp"
        android:textSize="@dimen/subtitleTextSize"/>
    <ImageView
        android:id="@+id/clickIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:src="@drawable/ic_action_next_item" />
</RelativeLayout>
4

3 回答 3

0

尝试这个:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/list_view_item_background"
    android:gravity="center_vertical"
    android:paddingBottom="3dp"
    android:paddingLeft="3.5dp"
    android:paddingRight="@dimen/listview_item_left_right_padding"
    android:paddingTop="3dp" >
    <View
        android:id="@+id/vertical_line"
        android:layout_width="3dip"
        android:layout_height="match_parent" 
        android:layout_alignParentLeft="true"
        android:layout_marginRight="5dp"
        android:background="@android:color/holo_orange_dark" />
    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:paddingTop="@dimen/listview_item_top_bottom_padding"
        android:layout_toRightOf="@+id/vertical_line"
        android:textColor="@color/White"
        android:text="Bars and Grills"
        android:textSize="@dimen/titleTextSize"
        android:textStyle="bold"/>
    <TextView
        android:id="@+id/venue_count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/name"
        android:paddingBottom="@dimen/listview_item_top_bottom_padding"
        android:layout_toRightOf="@+id/vertical_line"
        android:textColor="@color/White"
        android:text="20"
        android:paddingLeft="5dp"
        android:textSize="@dimen/subtitleTextSize"/>
    <TextView
        android:id="@+id/venue_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/name"
        android:layout_toRightOf="@+id/venue_count"
        android:paddingBottom="@dimen/listview_item_top_bottom_padding"
        android:textColor="@color/White"
        android:text="locations"
        android:paddingLeft="3dp"
        android:textSize="@dimen/subtitleTextSize"/>
    <ImageView
        android:id="@+id/clickIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:src="@drawable/ic_action_next_item" />
</RelativeLayout>

如您所见,我将其设为 fill_parent 并将颜色更改为 holo_orange_dark。它适用于我的情况。

于 2013-11-05T05:39:21.500 回答
0

它不是完美的解决方案,但有点破解。使用 relativelayout,在其中将第一个视图放在列表视图行项目的顶部位置布局之上,以同样的方式将另一个视图放在行项目的最后一个视图下方,然后在第一个视图下方和第二个视图上方绘制垂直线,并填充父高度并神奇地有用。不要忘记使用这两个顶部和底部视图的透明颜色。

于 2013-12-16T05:40:33.493 回答
0
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    View view =(View) findViewById(R.id.vertical_line);
    View parent = (View) view.getParent();
     int height = parent.getHeight();
     int width = view.getWidth();
     view.setLayoutParams(new LayoutParams(width, height));


}
于 2013-11-05T05:42:07.027 回答