繁体   English   中英

LinearLayout在底部有空白

[英]LinearLayout with blank space at the bottom

我正在使用LinearLayout水平从适配器加载视图。 尽管我使用wrap_content,并且布局中的视图始终对齐到顶部。 在linearLayout下面有一个空格。 这是错误还是我做错了。 请检查附件 截图

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:clickable="true"
        android:background="@drawable/recycler_selector">

        <de.hdodenhof.circleimageview.CircleImageView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="50dp"
            android:id="@+id/group_chat_photo" />

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_weight="5"
            android:paddingStart="5dp"
            android:paddingEnd="5dp"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_alignParentStart="true"
                android:layout_height="wrap_content"
                style="@style/ListTitleTextStyle"
                android:id="@+id/group_name" />

            <TextView
                android:layout_width="wrap_content"
                android:padding="5dp"
                android:layout_toStartOf="@id/group_name"
                android:layout_height="wrap_content"
                android:id="@+id/num_of_group_users"
                style="@style/PresenceTextStyle"
                android:layout_toEndOf="@id/group_name"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                style="@style/SubTitleTextStyle"
                android:layout_below="@id/group_name"
                android:id="@+id/group_members_presence"/>

        </RelativeLayout>

        <ImageView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_dots_vertical_grey600_24dp"
            android:contentDescription="@string/group_chat_options"
            android:id="@+id/group_chat_options"/>


    </LinearLayout>

这个元素是主要问题,

<TextView
  android:id="@+id/num_of_group_users"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_toEndOf="@id/group_name"
  android:layout_toStartOf="@id/group_name"
  tools:text="10 users"
  android:padding="5dp" />

由于您已经在使用相对布局,因此无需将其包装在线性布局周围。 您可以将单个RelativeLayout用作容器。 例如,以下只是一个想法,您可以根据需要更改填充和边距。

<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="wrap_content"
  android:background="@android:color/holo_orange_dark"
  android:orientation="horizontal">

  <ImageView
    android:id="@+id/group_chat_photo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:src="@mipmap/ic_launcher" />

  <TextView
    android:id="@+id/group_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/group_chat_photo"
    tools:text="Some title" />

  <TextView
    android:id="@+id/num_of_group_users"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/group_name"
    android:layout_toRightOf="@+id/group_members_presence"
    tools:text="10 users" />

  <TextView
    android:id="@+id/group_members_presence"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/group_name"
    android:layout_toRightOf="@+id/group_chat_photo"
    tools:text="Presence" />

  <ImageView
    android:id="@+id/group_chat_options"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:src="@mipmap/ic_launcher" />

</RelativeLayout>

尝试将整个线性布局放入另一个布局(相对或线性)中,并将其宽度设置为“ match_parent”,将高度设置为“ wrap_content”

我认为问题在于您在其中一个TextView中使用layout_toStartOf和layout_toEndOf(android:id =“ @ + id / num_of_group_users”)删除其中之一。

不要对RelativeLayout使用LinearLayout属性android:layout_weight 我已经使用RelativeLayout重新设计了您的xml。 有关输出,请参见所附图像。

这是工作代码。 尝试这个:

<?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="82dp"
    android:clickable="true"
    android:background="#455A64"
    android:padding="16dp">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/group_chat_photo"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:src="@mipmap/ic_launcher"/>

    <ImageView
        android:id="@+id/group_chat_options"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_dots_vertical_grey600_24dp"
        android:contentDescription="group_chat_options" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/group_chat_photo"
        android:layout_toLeftOf="@id/group_chat_options"
        android:layout_centerVertical="true"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp">

        <TextView
            android:id="@+id/group_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Americal AllStars"
            android:textColor="#FFFFFF"
            android:textSize="18dp"/>

        <TextView
            android:id="@+id/group_members_presence"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/group_name"
            android:text="Alucard, Client"
            android:textColor="#0788C9"
            android:textSize="16dp" />

        <TextView
            android:id="@+id/num_of_group_users"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/group_members_presence"
            android:layout_alignBottom="@id/group_members_presence"
            android:paddingLeft="5dp"
            android:text="and 10 others"
            android:textColor="#0788C9"
            android:textSize="16dp" />

    </RelativeLayout>
</RelativeLayout>

OUTPUT:

在此处输入图片说明

希望对您有帮助〜

暂无
暂无

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

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