2017-04-17 78 views
0

我想在CardView的右角添加一個選項菜單(3個點)。 問題是當TextView結束時它被添加。我想在屏幕右側右邊添加一個5dp的保證金。在屏幕右側添加ImageButton

任何想法如何添加ImageButton在每個cardview內屏幕的右側?

 <ImageButton 
      android:id="@+id/imageButton" 
      android:layout_width="20dp" 
      android:layout_height="30dp" 
      android:src="@mipmap/ic_dots_vertical_black_18dp" 
      android:contentDescription="..." 
      android:background="@null" 
      android:visibility="gone" 
      android:layout_gravity="right" /> 

我的完整的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="wrap_content" 
    android:background="#fff"> 

    <android.support.v7.widget.CardView 
     xmlns:card_view="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     card_view:cardCornerRadius="0dp" 
     android:id="@+id/card_view" 
     android:layout_marginBottom="0dp" 
     android:layout_marginEnd="0dp" 
     android:layout_marginLeft="0dp" 
     android:layout_marginRight="0dp" 
     android:layout_marginStart="0dp" 
     android:layout_marginTop="0dp"> 

     <LinearLayout 
      android:padding="@dimen/activity_horizontal_margin" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:orientation="horizontal" > 

       <ImageView 
        android:layout_width="50dp" 
        android:layout_height="50dp" 
        android:padding="0dp" 
        android:id="@+id/ProfilePic" 
        android:paddingBottom="20dp" 
        android:adjustViewBounds="true" /> 

       <TextView 
        android:id="@+id/textViewUser" 
        android:textStyle="bold" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:paddingLeft="10dp" 
        android:paddingBottom="20dp" 
        /> 

       <ImageButton 
        android:id="@+id/imageButton" 
        android:layout_width="20dp" 
        android:layout_height="30dp" 
        android:src="@mipmap/ic_dots_vertical_black_18dp" 
        android:contentDescription="..." 
        android:background="@null" 
        android:visibility="gone" 
        android:layout_gravity="right" /> 

      </LinearLayout> 
       </LinearLayout> 



    </android.support.v7.widget.CardView> 

</RelativeLayout> 

回答

1

你可以給TextView的權重爲1:

android:layout_weight="1" 

或簡單地用一個相對佈局來定位你的左/右按鈕,然後把在中間的textview。

+0

謝謝。而且我還需要刪除android:layout_centerHorizo​​ntal =「true」以使其工作。 –

0

你也可以試試這個:

<?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="wrap_content" 
    android:background="#fff"> 

    <android.support.v7.widget.CardView 
     xmlns:card_view="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     card_view:cardCornerRadius="0dp" 
     android:id="@+id/card_view" 
     android:layout_marginBottom="0dp" 
     android:layout_marginEnd="0dp" 
     android:layout_marginLeft="0dp" 
     android:layout_marginRight="0dp" 
     android:layout_marginStart="0dp" 
     android:layout_marginTop="0dp"> 

     <RelativeLayout 
      android:padding="@dimen/activity_horizontal_margin" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <ImageView 
       android:layout_width="50dp" 
       android:layout_height="50dp" 
       android:id="@+id/ProfilePic" 
       android:src="@mipmap/ic_launcher"/> 

      <ImageButton 
       android:id="@+id/imageButton" 
       android:layout_width="20dp" 
       android:layout_height="30dp" 
       android:src="@mipmap/ic_launcher" 
       android:contentDescription="..." 
       android:background="@null" 
       android:visibility="visible" 
       android:layout_alignParentRight="true"/> 

      <TextView 
       android:id="@+id/textViewUser" 
       android:textStyle="bold" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_toRightOf="@id/ProfilePic" 
       android:layout_toLeftOf="@id/imageButton" 
       android:paddingLeft="16dp" 
       android:paddingRight="5dp" 
       android:paddingBottom="20dp" 
       android:text="This is a sample text"/> 

     </RelativeLayout> 
    </android.support.v7.widget.CardView> 
</RelativeLayout> 

OUTPUT:

enter image description here

希望這將有助於〜