簡體   English   中英

android如何在RecyclerView中設置重力

[英]android How to set Gravity in RecyclerView

我正在嘗試制作一個聊天應用程序,並且在RecyclerView中設置自定義視圖的重力時遇到麻煩。 我一直在搜索和嘗試一整天,但是我做不到,它始終顯示為(ScreenShot)。它應該位於屏幕的右側而不是左側。 但是在Android Studio預覽中,它顯示正確。我正在附加我的源代碼。

  1. 在MainActivity.xml(RecyclerView)中

     ...... <RelativeLayout android:background="#9cbad8" android:layout_weight="70" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:layout_alignParentRight="true" android:paddingBottom="5dp" android:listSelector="@drawable/bg_transparent" android:cacheColorHint="@android:color/transparent" android:paddingTop="50dp" android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout> ....... 

2.在MessageItem.xml中(我設置了感恩權,屏幕截圖正確顯示)

<LinearLayout
        android:id="@+id/my_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
            <LinearLayout
                android:id="@+id/my_normal_layout"
                android:orientation="horizontal"
                android:gravity="end"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                    <TextView
                        android:id="@+id/my_time"
                        android:textSize="10sp"
                        android:layout_marginRight="5dp"
                        android:layout_gravity="bottom"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="오후 15:15"/>

                    <TextView
                        android:textAlignment="center"
                        android:layout_marginTop="5dp"
                        android:layout_marginRight="5dp"
                        android:maxWidth="200dp"
                        android:textSize="14sp"
                        android:lineSpacingMultiplier="1.2"
                        android:gravity="center_vertical"
                        android:paddingLeft="10dp"
                        android:paddingRight="15dp"
                        android:paddingTop="8dp"
                        android:paddingBottom="8dp"
                        android:background="@drawable/bubble_my"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="#000000"
                        android:text="this is Test"
                        android:id="@+id/my_normal_text" />
            </LinearLayout>
</LinearLayout>

Android Layout Preview效果很好(ScreenShot)

  1. 我的RecyclerViewHolder

     public class ViewHolder extends RecyclerView.ViewHolder { LinearLayout myLayout; LinearLayout myNormarLayout; LinearLayout myMoreLayout; public ViewHolder(View v) { super(v); myLayout = (LinearLayout)v.findViewById(R.id.my_layout); myNormarLayout = (LinearLayout)v.findViewById(R.id.my_normal_layout); myMoreLayout = (LinearLayout)v.findViewById(R.id.my_more_layout); } } 
  2. 同樣在我的RecyclerViewAdapter中,我再次更改了Gravity。

     .... holder.myNormarLayout.setVisibility(View.VISIBLE); holder.myNormarLayout.setGravity(Gravity.Right); .... 

我已經嘗試過搜索的幾乎所有內容,但它們對此沒有用..請...幫助我

您可以使用約束布局以獲得更好的性能。

就您而言,在時間和文字之間添加加權視圖可能會有所幫助,請嘗試以下操作

<LinearLayout
    android:id="@+id/my_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
        <LinearLayout
            android:id="@+id/my_normal_layout"
            android:orientation="horizontal"
            android:gravity="end"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

                <TextView
                    android:id="@+id/my_time"
                    android:textSize="10sp"
                    android:layout_marginRight="5dp"
                    android:layout_gravity="bottom"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="오후 15:15"/>
                <View
                      android:layout_height="0dp"
                      android:layout_width="0dp"
                      android:layout_weight="0"
                      />
                <TextView
                    android:textAlignment="center"
                    android:layout_marginTop="5dp"
                    android:layout_marginRight="5dp"
                    android:maxWidth="200dp"
                    android:textSize="14sp"
                    android:lineSpacingMultiplier="1.2"
                    android:gravity="center_vertical"
                    android:paddingLeft="10dp"
                    android:paddingRight="15dp"
                    android:paddingTop="8dp"
                    android:paddingBottom="8dp"
                    android:background="@drawable/bubble_my"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="#000000"
                    android:text="this is Test"
                    android:id="@+id/my_normal_text" />
        </LinearLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM