繁体   English   中英

Android Listview Item:如何设置项目的自定义高度?

[英]Android Listview Item : How to set custom height of the item?

我有以下列表项布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/AppTheme.ListViewItemStyle_1">

    <View android:id="@+id/data_view_stripe"
        style="@style/AppTheme.RedStripe"/>

    <ImageView android:id="@+id/data_iv_main"
        style="@style/AppTheme.ImageBig"
        android:src="@drawable/web_icon_weight"
        android:contentDescription="Item icon"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_weight="4"
        android:padding="4dp"
        android:layout_gravity="center">

        <TextView android:id="@+id/data_tv_title"
            style="@style/AppTheme.ListItemDefaultHeading"
            android:text="BP - diastolic"/>

        <TextView android:id="@+id/data_tv_value"
            style="@style/AppTheme.WrapContent.Value"
            android:text="87 mmHg"/>

        <TextView android:id="@+id/data_tv_occurence_desc"
            style="@style/AppTheme.WrapContent.Calendar"
            android:text="Daily at 8:00"/>

        <TextView android:id="@+id/data_tv_overdue"
            style="@style/AppTheme.WrapContent.Schedule"
            android:text="Overdue (Today at 8:00)"/>

        <TextView android:id="@+id/data_tv_test_time"
                  style="@style/AppTheme.WrapContent.Schedule"
                  android:text="Overdue (Today at 8:00)"/>

    </LinearLayout>

    <ImageButton android:id="@+id/data_btn_favourite"
                 style="@style/AppTheme.RatingBasic"
                 android:paddingLeft="15dp"
                 android:paddingRight="0dp"
                 android:contentDescription="Favourite button"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_gravity="center">

        <ImageView android:id="@+id/data_iv_trend"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:src="@drawable/ic_arrow_down"
            android:contentDescription="Progress indicator"/>

        <ImageButton android:id="@+id/data_btn_info"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/background_white"
            style="@style/AppTheme.Info"
            android:contentDescription="Information button"/>

    </LinearLayout>

</LinearLayout>

具有以下样式:

 <!-- Base ListVIew Item -->
    <style name="AppTheme.ListViewItemBase" >
        <item name="android:background">@color/background_white</item>
        <item name="android:paddingTop">10dp</item>
        <item name="android:paddingBottom">10dp</item>
        <item name="android:paddingRight">10dp</item>
        <item name="android:divider">@android:color/holo_red_dark</item>
        <item name="android:dividerHeight">10dp</item>
        <item name="android:orientation">horizontal</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">match_parent</item>
        <item name="android:layout_gravity">center</item>
    </style>

    <!--  ListVIew Item style 01-->
    <style name="AppTheme.ListViewItemStyle_1" parent="AppTheme.ListViewItemBase">
        <item name="android:layout_height">50dp</item>
        <item name="android:descendantFocusability">blocksDescendants</item>
    </style>

我尝试使用以下命令将商品的自定义高度设置为50dp:

android:layout_height

在Android Studio布局预览中更改了高度,但是如果我将应用程序部署到实际设备中,则该项目的高度保持不变。

如何使用样式设置列表项的自定义高度?

非常感谢您的任何建议。

编辑:根据您的建议,我尝试了以下对我不起作用的示例(项目高度仍然相同)。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="horizontal"
    android:layout_height="20dp"
    >

    <View android:id="@+id/data_view_stripe"
        style="@style/AppTheme.RedStripe"/>

    <ImageView android:id="@+id/data_iv_main"
        style="@style/AppTheme.ImageBig"
        android:src="@drawable/web_icon_weight"
        android:contentDescription="Item icon"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_weight="4"
        android:padding="4dp"
        android:layout_gravity="center">

        <TextView android:id="@+id/data_tv_title"
            style="@style/AppTheme.ListItemDefaultHeading"
            android:text="BP - diastolic"/>

        <TextView android:id="@+id/data_tv_value"
            style="@style/AppTheme.WrapContent.Value"
            android:text="87 mmHg"/>

        <TextView android:id="@+id/data_tv_occurence_desc"
            style="@style/AppTheme.WrapContent.Calendar"
            android:text="Daily at 8:00"/>

        <TextView android:id="@+id/data_tv_overdue"
            style="@style/AppTheme.WrapContent.Schedule"
            android:text="Overdue (Today at 8:00)"/>

        <TextView android:id="@+id/data_tv_test_time"
                  style="@style/AppTheme.WrapContent.Schedule"
                  android:text="Overdue (Today at 8:00)"/>

    </LinearLayout>

    <ImageButton android:id="@+id/data_btn_favourite"
                 style="@style/AppTheme.RatingBasic"
                 android:paddingLeft="15dp"
                 android:paddingRight="0dp"
                 android:contentDescription="Favourite button"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_gravity="center">

        <ImageView android:id="@+id/data_iv_trend"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:src="@drawable/ic_arrow_down"
            android:contentDescription="Progress indicator"/>

        <ImageButton android:id="@+id/data_btn_info"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/background_white"
            style="@style/AppTheme.Info"
            android:contentDescription="Information button"/>

    </LinearLayout>

</LinearLayout>

去掉

  1. style="@style/AppTheme.ListViewItemStyle_1"
  2. android:orientation 在哪里

然后。您可以尝试这种方式,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="50dp"
  android:orientation="horizontal">

注意 :根据您的要求将android:orientation=""horizontalvertical

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM