2017-12-02 121 views
-1

我有這樣的看法:包裝僅可見內容

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:descendantFocusability="blocksDescendants"> 

    <LinearLayout 
     android:id="@+id/ll1" 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_toStartOf="@+id/ll2" 
     android:layout_alignParentStart="true"> 

     <TextView android:id="@android:id/text1" 
      android:textSize="16sp" 
      android:textStyle="bold" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

     <TextView android:id="@android:id/text2" 
      android:textSize="16sp" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

     <TextView android:id="@+id/text3" 
      android:textSize="16sp" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/ll15" 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toStartOf="@id/ll2"> 

    <ImageView 
     android:id="@+id/rc_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@mipmap/ic_rc_flag" 
     android:contentDescription="@string/view_only_content_description" 
     android:visibility="visible" /> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/ll2" 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true"> 

    <ImageButton 
     android:id="@+id/view_only_event_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_visibility_black_24dp" 
     android:contentDescription="@string/view_only_content_description" 
     android:visibility="invisible" /> 
    <ImageButton 
     android:id="@+id/delete_event_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_delete_black_24dp" 
     android:contentDescription="@string/delete_content_description" 
     android:visibility="invisible" /> 
    </LinearLayout> 
</RelativeLayout> 

,並通過java代碼我這個圖像和圖像按鈕的知名度發揮:

  • @ + ID/rc_icon
  • @ + ID/view_only_event_button
  • @ + ID/delete_event_button

我希望按鈕靠近彼此並靠近視圖的遠端。 現在的問題是,當一個按鈕不可見時,它的位置在屏幕上仍然是空的。

我正在跳轉@ + id/ll2佈局wrap_content寬度會根據其子的可見性而改變。

是可能的嗎?

回答

1

問題是在這裏,而不是隱形你應該使用不見了就是這樣。

android:visibility="invisible" 

將其更改爲

android:visibility="gone" 

價值消除佔領以及查看空間是從父視圖自身和無形使它們隱藏起來,但佔用的空間保持不變。

更多here

1

,使按鈕沒有被佔用佈局時看不見你應該設置能見度goneView.GONE)代替,不invisible

1

你需要讓你的看法知名度GONE無形的,而不是像這樣: -

我用你的代碼,看看這個

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:descendantFocusability="blocksDescendants"> 

<LinearLayout 
    android:id="@+id/ll1" 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_toStartOf="@+id/ll2" 
    android:layout_alignParentStart="true"> 

    <TextView android:id="@android:id/text1" 
     android:textSize="16sp" 
     android:textStyle="bold" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

    <TextView android:id="@android:id/text2" 
     android:textSize="16sp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

    <TextView android:id="@+id/text3" 
     android:textSize="16sp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 
<LinearLayout 
    android:id="@+id/ll15" 
    android:orientation="horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toStartOf="@id/ll2"> 

<ImageView 
    android:id="@+id/rc_icon" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@mipmap/ic_rc_flag" 
    android:contentDescription="@string/view_only_content_description" 
    android:visibility="visible" /> 
</LinearLayout> 
<LinearLayout 
    android:id="@+id/ll2" 
    android:orientation="horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true"> 

<ImageButton 
    android:id="@+id/view_only_event_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_visibility_black_24dp" 
    android:contentDescription="@string/view_only_content_description" 
    android:visibility="gone" /> 
<ImageButton 
    android:id="@+id/delete_event_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_delete_black_24dp" 
    android:contentDescription="@string/delete_content_description" 
    android:visibility="gone" /> 
</LinearLayout>