2016-01-18 74 views
1

我試圖根據不同的標準設計活動佈局。我已經在xml上創建了佈局,並且默認情況下它會在活動中顯示兩個按鈕(ask,buy)。隱藏兩個按鈕並在xml上顯示不同的按鈕

但是,在某些情況下,我不想顯示這兩個按鈕,只顯示一個按鈕,它們都不在下面,完全不同的按鈕和不同的動作。我怎麼能做到這一點?

換句話說,我想讓我的新按鈕停留在買入和詢問按鈕中。具有相同的尺寸。我應該怎麼做?並非兩個按鈕(併購和詢問),現在中心只有一個按鈕(刪除)。

  <Button 
      android:id="@+id/btnAsk" 
      android:textSize="16sp" 
      android:layout_width="0dip" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:text="ask" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="5dp" 
      android:layout_marginBottom="5dp" 
      android:textStyle="bold" 
      android:background="@drawable/button_style" 
      android:textColor="@color/white"/> 
     <Button 
      android:id="@+id/btnBuy" 
      android:layout_width="0dip" 
      android:layout_weight="1" 
      android:textSize="16sp" 
      android:layout_height="wrap_content" 
      android:text="buy" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginBottom="5dp" 
      android:textStyle="bold" 
      android:background="@drawable/button_style" 
      android:textColor="@color/white" 
      /> 
+0

設置它對'GONE'或'INVISIBLE'的可見性 –

+0

但是我應該在xml中放置新按鈕的位置? – hotspring

+0

@texas:在'btnBuy'使默認能見度爲'GONE'並將其放在同一個xml文件中並在運行時使其可見和其他GONE –

回答

1

使用setVisibility(View.GONE)在Button對象,當你想隱藏的按鈕:

Button btnAsk = (Button)findViewById(R.id.btnAsk); 
Button btnDel = (Button)findViewById(R.id.btnDel); 
Button btnBuy = (Button)findViewById(R.id.btnBuy); 

/* if you want to show only Delete button.. */ 
btnAsk.setVisibility(View.INVISIBLE); 
btnDel.setVisibility(View.VISIBLE); 
btnBuy.setVisibility(View.INVISIBLE); 

/* if you want to show Ask and Buy buttons.. */ 
btnAsk.setVisibility(View.VISIBLE); 
btnDel.setVisibility(View.INVISIBLE); 
btnBuy.setVisibility(View.VISIBLE); 

View.INVISIBLE屬性將讓你的按鈕都沒有顯示,但他們的位置保持。

View.GONE屬性將完全隱藏您的按鈕。

照顧它。


如果你想設置的三個按鈕,編輯XML代碼:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/btnAsk" 
     android:textSize="16sp" 
     android:layout_width="0dip" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:text="ask" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="5dp" 
     android:layout_marginBottom="5dp" 
     android:textStyle="bold" 
     android:background="@drawable/button_style" 
     android:textColor="@color/white"/> 
    <Button 
     android:id="@+id/btnDel" 
     android:textSize="16sp" 
     android:layout_width="0dip" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:text="Delete" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="5dp" 
     android:layout_marginBottom="5dp" 
     android:textStyle="bold" 
     android:background="@drawable/button_style" 
     android:textColor="@color/white"/> 
    <Button 
     android:id="@+id/btnBuy" 
     android:layout_width="0dip" 
     android:layout_weight="1" 
     android:textSize="16sp" 
     android:layout_height="wrap_content" 
     android:text="buy" 
     android:layout_marginLeft="5dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginBottom="5dp" 
     android:textStyle="bold" 
     android:background="@drawable/button_style" 
     android:textColor="@color/white" 
    /> 
</LinearLayout> 
+0

我想使我的新按鈕停留在購買和問中間按鈕。具有相同的尺寸。我應該怎麼做?並非兩個按鈕(併購和詢問),現在中心只有一個按鈕(刪除)。 – hotspring

+0

刪除中心的按鈕? – hotspring

+0

我編輯我的答案。像這樣編輯你的xml代碼,然後在'YourActivity.java'中控制你的按鈕。如果你設置了'View.INVISIBLE',可見按鈕將保持它們的位置和大小。但是'View.GONE',可見按鈕將被改變。 – Kae10

1

隱藏按鈕,使用ONEINVISIBLE

Button btnName = (Button)findViewById(R.id.btnName); 

btnName.setVisibility(View.GONE); 

可見按鈕

btnName.setVisibility(View.VISIBLE); 

在XML中使用android:gravity="center"

android:centerInParent="true" 
+0

我想讓我的新按鈕保持在買入和詢問按鈕。具有相同的尺寸。我應該怎麼做?並非兩個按鈕(併購和詢問),現在中心只有一個按鈕(刪除)。 – hotspring

1
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:oriantation="horizontal" > 
<Button 
      android:id="@+id/btnAsk" 
      android:textSize="16sp" 
      android:layout_width="0dip" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:text="ask" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="5dp" 
      android:layout_marginBottom="5dp" 
      android:textStyle="bold" 
      android:background="@drawable/button_style" 
      android:textColor="@color/white"/> 

    <Button 
      android:id="@+id/btnDelete" 
      android:layout_width="match_parent" 
      android:gravity="center" 
      android:textSize="16sp" 
      android:layout_height="wrap_content" 
      android:text="delete" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginBottom="5dp" 
      android:textStyle="bold" 
      android:background="@drawable/button_style" 
      android:textColor="@color/white" 
      android:visibility="gone" 
      /> 

     <Button 
      android:id="@+id/btnBuy" 
      android:layout_width="0dip" 
      android:layout_weight="1" 
      android:textSize="16sp" 
      android:layout_height="wrap_content" 
      android:text="buy" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginBottom="5dp" 
      android:textStyle="bold" 
      android:background="@drawable/button_style" 
      android:textColor="@color/white" 
      /> 

</LinearLayout> 

on some condition 

delete.setVisibility(View.Visible); 
    buy.setVisibility(View.Gone); 
    action.setVisibility(View.Gone); 
1

使用XML中的所有按鈕itself.But使其顯示/隱藏在你的java文件即Activity.In的onCreate如果你不想顯示使它作爲一種無形的

Button buyBut=(Button)findViewById(R.id.butBuy); 
    buyBut.setVisibility(View.GONE); 

,並使其作爲可見,你需要通過以下來顯示它..

buyBut.setVisibility(View.VISIBLE); 
1

創建一個佈局(比如userActionLayout),並添加您的按鈕它,當你想使用setVisibility隱藏這些按鈕隱藏此佈局(View.Gone)

添加此佈局之外的另一個按鈕(userActionLayout) `並以不同的方式進行定義。當您隱藏其他佈局時,請在代碼中顯示此按鈕。

例如:

<LinearLayout 
      android:id="@+id/userActionLayout" 
      android:height="wrap_content" 
      android:width="fill_parent" 
      android:orientation="vertical"> 
    <Button 
      android:id="@+id/btnAsk" 
      android:textSize="16sp" 
      android:layout_width="0dip" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:text="ask" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="5dp" 
      android:layout_marginBottom="5dp" 
      android:textStyle="bold" 
      android:background="@drawable/button_style" 
      android:textColor="@color/white"/> 
     <Button 
      android:id="@+id/btnBuy" 
      android:layout_width="0dip" 
      android:layout_weight="1" 
      android:textSize="16sp" 
      android:layout_height="wrap_content" 
      android:text="buy" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginBottom="5dp" 
      android:textStyle="bold" 
      android:background="@drawable/button_style" 
      android:textColor="@color/white" 
      /> 
    <LinearLayout/> 

    <Button 
      android:id="@+id/btnOther" 
      android:height="wrap_content" 
      android:width="fill_parent" 
      android:visibility="gone" 
      /> 
0
嘗試

下面的代碼 -

按鈕BUTTONNAME =(按鈕)findViewById(R.id.butBuy);

buttonname.setVisibility(View.INVISIBLE);

或 -

buttonname.setVisibility(View.GONE);

與再次顯示 -

buttonname.setVisibility(View.VISIBLE);