简体   繁体   English

LinearLayout在底部有空白

[英]LinearLayout with blank space at the bottom

I am using LinearLayout horizontal to load view from the adapter. 我正在使用LinearLayout水平从适配器加载视图。 Though I am using wrap_content and views within the layout are aligned to top. 尽管我使用wrap_content,并且布局中的视图始终对齐到顶部。 And there is a blank space below the linearLayout. 在linearLayout下面有一个空格。 Is this is a bug or what am I doing wrong. 这是错误还是我做错了。 Please do check the attached 请检查附件 截图

<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>

This element is the main problem, 这个元素是主要问题,

<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" />

Since, you are already using relative layout, there is no need to wrap this around linear layout. 由于您已经在使用相对布局,因此无需将其包装在线性布局周围。 You can use single RelativeLayout as container. 您可以将单个RelativeLayout用作容器。 For example, following is just idea, you can change padding and margin as per your need. 例如,以下只是一个想法,您可以根据需要更改填充和边距。

<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”)删除其中之一。

Don't use LinearLayout attribute android:layout_weight to RelativeLayout . 不要对RelativeLayout使用LinearLayout属性android:layout_weight I have redesigned your xml with RelativeLayout . 我已经使用RelativeLayout重新设计了您的xml。 See the attached image for output. 有关输出,请参见所附图像。

Here is the working code. 这是工作代码。 Try this: 尝试这个:

<?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: OUTPUT:

在此处输入图片说明

Hope this will help you~ 希望对您有帮助〜

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

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