当回收者视图中的数据项增加时,回收器视图数据在文本视图下

时间:2016-10-08 12:32:03

标签: android android-layout android-recyclerview

我创建了一个聊天应用程序。在聊天室活动中,回收站视图项目正在文本视图下。我的意思是当数据项增加时,它将在文本视图下。

Below is the screenshot

activty_chatroom.xml

<?xml version="1.0" encoding="utf-8"?>
<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"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.boosterfoxindia.foxindtracker.ChatRoomActivity">

    <!--<TextView-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:text="" -->
        <!--android:id="@+id/tvChat"/>-->

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/rvCM"
        app:stackFromEnd="true"></android.support.v7.widget.RecyclerView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="7"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:padding="0dp"
        android:gravity="center"
        >

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/etMessage"
            android:layout_weight="6"
            android:background="@drawable/chattextbox"
            android:padding="10dp"
            android:hint="Enter message..."
            android:elevation="2dp"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"/>


        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/btnSend"
            android:background="@drawable/circle"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginBottom="0dp">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@mipmap/ic_send_white_24dp"
                android:layout_gravity="center"
                android:padding="10dp"
               />



        </LinearLayout>


    </LinearLayout>
</RelativeLayout>

我是Android应用程序的初学者,因此我不知道我哪里错了,请帮帮我

3 个答案:

答案 0 :(得分:1)

执行以下操作,
1.将id添加到包含编辑器的linear layout 2.更改layout height的{​​{1}}以匹配父级 3.在recyclerview

中添加此属性
recycler view

4。并从您的编辑器android:layout_above="@+id/editor_id"

中删除weight sum属性
  

P.S。在这些情况下,将您的父RelativeLayout更改为LinearLayout可能会在少数设备上产生疯狂的结果,因此请使用具有适当布局定位属性的RelativeLayout

答案 1 :(得分:1)

我认为您无需进行更多更改,您需要执行id Linear Layout这样的android:id="@+id/LLMain"并使用Recycler View进行更改此属性android:layout_above="@+id/LLMain"。并且还height match parentRecyclerview

  

喜欢这个XML。

<android.support.v7.widget.RecyclerView
        android:id="@+id/rvCM"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/LLMain"
        app:stackFromEnd="true" />

    <LinearLayout
        android:id="@+id/LLMain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:gravity="center"
        android:orientation="horizontal"
        android:padding="0dp"
        android:weightSum="7"> 

答案 2 :(得分:0)

首先,您必须将RelativeLayout更改为LinearLayout(垂直)。接下来,RecyclerView投放新的linear_layout并设置属性android:layout_weight="3"。按照这个代码,它就像你想要的那样工作。

     

<!--<TextView-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:text="" -->
<!--android:id="@+id/tvChat"/>-->

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/linearLayout4"
        android:layout_weight="3"
        android:splitMotionEvents="false">
        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/rvCM"
            app:stackFromEnd="true" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:padding="0dp"
        android:gravity="center"
        android:layout_weight="1"
        android:splitMotionEvents="false">
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/etMessage"
            android:layout_weight="6"
            android:background="@drawable/chattextbox"
            android:padding="10dp"
            android:hint="Enter message..."
            android:elevation="2dp"
            android:layout_gravity="center"
            android:layout_marginTop="10dp" />
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/btnSend"
            android:background="@drawable/circle"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_gravity="center"

            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginBottom="0dp">
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@mipmap/ic_send_white_24dp"
                android:layout_gravity="center"
                android:padding="10dp" />
        </LinearLayout>
    </LinearLayout>
   </LinearLayout>