2012-03-28 239 views
0

我不想創建新的活動。就像這位先生的示例(http://www.youtube.com/watch?v=V6AdmCIe4Ik),但我想在LinearLayout上使用Button而不是main來實現此功能。如何通過單擊按鈕顯示另一個按鈕?

在00:44的視頻中說,用戶單擊res/layout/activity1.xml上指定的按鈕,子按鈕在00:47顯示。

他實現它使用菜單和創建一個子文件夾(菜單)下res而不是使用佈局。

我想要做的是,一旦用戶點擊了在LinearLayout上聲明的按鈕,它將在視頻上顯示另一個按鈕,就像00:47一樣。

回答

0

一個非常簡單的XML文件:

<LinearLayout 
    android:orientation="vertical" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:animateLayoutChanges="true"> 

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

    <Button 
    android:id="@+id/button2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="button2" 
    android:visibility="gone" /> 

</LinearLayout> 

然後在代碼中,您可以設置監聽器爲Button1如下:

private Button button1; 
private Button button2; 

protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.activity1); 
    button1 = findViewById(R.id.button1); 
    button2 = findViewById(R.id.button2); 

    button1.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     button2.setVisibility(View.VISIBLE); 
    } 
    }); 
} 

此代碼示例設置事件偵聽器的第一個按鈕並且在單擊時將按鈕的可見性從無效(這意味着它不佔用佈局中的空間並且不可見)更改爲可見(Visible),這是正常狀態。

+0

是啊...這個工程,但過渡並不平坦。第二個按鈕應該只在第一個按鈕被點擊後才能看到。 – user1296153 2012-03-28 23:23:27

+0

瞭解,這就是爲什麼我將可見性設置爲「已離開」的XML格式。至於轉換的平滑性,通過讓父視圖爲佈局更改設置動畫效果就足夠了。更新以上容納。 – JRaymond 2012-03-28 23:43:53

+0

你可以發表一些例子嗎?我不是很遵循... – user1296153 2012-03-28 23:45:46

相關問題