2014-02-05 38 views
0

我在佈局中有兩個按鈕,並且彼此水平放置。我想隱藏第一個按鈕並將第二個按鈕放置在線性佈局的中心。 我已經使用下面的代碼,但它不fullfil的要求。以編程方式設置按鈕對於定義的方案不可見

if (flag){ 

    btn1.setVisibility(View.GONE); //.setEnabled(false); 

    android.widget.LinearLayout.LayoutParams params = new android.widget.LinearLayout.LayoutParams(
    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 2f); 
    params.setMargins(15, 0, 15, 0); 

    btn2.setLayoutParams(params); 
}else{ 
    btn1.setVisibility(View.VISIBLE); //.setEnabled(true); 
} 

請建議。 謝謝。

在xml文件中,兩個按鈕應該水平相鄰,隱藏一個按鈕,第二個按鈕應該水平居中。並且我正在使用linearlayout。

+1

你爲什麼不在你的xml中設置它,並且只是動態地控制可見性。 –

+0

'else'代碼永遠不會被調用... –

+0

我剛剛更新了代碼 – gIrL

回答

0

保持XML文件,並調用該按鈕在你的活動和setVisibility而不是創建佈局的動態

+0

問題不在於將按鈕設置爲可見或不可見,以便在運行時放置按鈕佈局中心。 – gIrL

0

與該XML文件嘗試

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="horizontal" > 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button1" /> 

<LinearLayout 
    android:id="@+id/parent" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button2" /> 
</LinearLayout> 

</LinearLayout> 

在活動

LinearLayout parent = (LinearLayout) findViewById(R.id.parent); 

if (flag){ 

    btn1.setVisibility(View.GONE); 
    parent.setGravity(Gravity.CENTER_HORIZONTAL); 

}else{ 

btn1.setVisibility(View.VISIBLE); 
parent.setGravity(Gravity.LEFT); 
} 
+0

謝謝Sonali,我會試試這個.. – gIrL

相關問題