2012-03-28 21 views
0

新しいアクティビティを作成したくありません。この紳士の例(http://www.youtube.com/watch?v=V6AdmCIe4Ik)のように、私はLinearLayoutでmainの代わりにButtonを使って実装したいと思います。ボタンをクリックして別のボタンを表示する方法は?

00:44の動画では、ユーザーがres/layout/activity1.xmlで指定したボタンをクリックし、サブボタンが00:47に表示されます。

彼はメニューを使用してそれを実装し、レイアウトの代わりにresの下にサブフォルダ(メニュー)を作成しました。

私がしたいのは、LinearLayoutで宣言されたボタンをユーザがクリックすると、ビデオの00:47のような別のボタンが表示されるということです。非常に単純なXMLファイルで

答えて

0

次のように

<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

ええと...これはうまくいきますが、トランジションは滑らかではありません。また、2番目のボタンは、1番目のボタンをクリックした後にのみ表示されます。 – user1296153

+0

これは、XMLで「可視性」を設定する理由です。移行の円滑さについては、親ビューでレイアウトの変更をアニメーション化するだけで十分です。上記に合わせて更新してください。 – JRaymond

+0

いくつかの例を投稿できますか?私はそれほどフォローしていません... – user1296153

関連する問題