如何通过单击按钮显示另一个按钮?

问题描述:

我不想创建新的活动。就像这位先生的示例(http://www.youtube.com/watch?v=V6AdmCIe4Ik),但我想在LinearLayout上使用Button而不是main来实现此功能。如何通过单击按钮显示另一个按钮?

在00:44的视频中说,用户单击res/layout/activity1.xml上指定的按钮,子按钮在00:47显示。

他实现它使用菜单和创建一个子文件夹(菜单)下res而不是使用布局。

我想要做的是,一旦用户点击了在LinearLayout上声明的按钮,它将在视频上显示另一个按钮,就像00:47一样。

一个非常简单的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