2016-11-08 96 views
-1

我正在嘗試創建一個聊天應用程序,並且在RecyclerView中設置自定義視圖的重力時遇到了麻煩。我一直在尋找並嘗試一整天,但我無法制作,它總是顯示爲this(ScreenShot)。它應該位於屏幕右側,而不是左側。但Android Studio中預覽,它顯示correctly.Im附上我的源..請告訴我,什麼是錯的..android如何在RecyclerView中設置重力

  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.In MessageItem.xml(我設置graivity權,並截圖顯示正確)

<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 shows well(ScreenShot)

  • 我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); 
        } 
    } 
    
  • 此外,在我的RecyclerViewAdapter,我改變重力再次..

    .... 
    holder.myNormarLayout.setVisibility(View.VISIBLE); 
    holder.myNormarLayout.setGravity(Gravity.Right); 
    .... 
    
  • 我曾試圖幾乎搜索的東西,但他們沒有爲此工作.. 請...幫我

    回答

    0

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

    在你的情況可能增加的時間和文字可以幫助之間的加權觀點,試試這個

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

    +0

    謝謝主席先生,但它說明不了什麼... – MWP

    +0

    我不好,我改什麼在父級佈局上,再次檢查複製粘貼,我所做的只是在兩個文本視圖之間添加視圖。 –

    +0

    Tahnks但我只是試過,它不工作,它仍然位於左側.. – MWP