1

ページの上部に WebView と非表示のメニューを含むアプリを作成しています (画面をダブルクリックした場合にのみ表示されます)。そのメニューは、内部にボタンがある単純な線形レイアウトです。各ボタンは異なるアクティビティを開始します。メニューがすべてのアクティビティで機能するようにしたいと思います。(見えない) メニューが一番上にあり、画面の残りの部分には他のアクティビティ用のスペースがあるメイン レイアウトを作成することを考えていました。各アクティビティにも独自のレイアウトが必要です。メニューを一番上にしてレイアウトを作成し、残りのスペースを線形レイアウトにすることもできます。次に、その線形レイアウト内で各アクティビティを呼び出します。それは可能ですか?可能であれば、どのように行うのですか?どんな助けでも大歓迎です。

4

3 に答える 3

1

私が理解しているように、あなたはそのようにすることができます:

1- メニューの LinearLayout を拡張するクラスを作成します。
2-クラスを作成してアクティビティを拡張し、その中にそのメニュービューを作成します
3-他のすべてのアクティビティは、手順2で作成したアクティビティを拡張する必要があります
。4-他のすべてのアクティビティonStart内で、メニュービューを画面に追加する必要があります

しかし、ナビゲーション ドロワーを使用することを強くお勧めします。

http://developer.android.com/design/patterns/navigation-drawer.htmlおよび
http://developer.android.com/training/implementing-navigation/nav-drawer.html

于 2013-10-21T10:21:09.397 に答える
0

これを実現するActivityには、非表示のレイアウトを上部に配置し、次のFrameLayoutコンテナのコンテナとして作成しますFragments

MainActivit.java

public class MainActivity(){

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main)
    }
}

およびactivity_main.xml

 <RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/invisible_menu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" >

        <!-- your other views here -->

    </LinearLayout>

    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/invisible_menu" />

</RelativeLayout>

それはMainActivityあなたのすべてを保持するものFragmentsです。アプリで使用するには、 Android Developers - FragmentsFragmentsをチェックする必要があります

編集:Fragmentsコードを介して追加/置換する方法は次のとおりです。

Fragment最初の単純な呼び出しを追加するには:

FragmentTransaction transaction = getFragmentManager().beginTransaction();

ExampleFragment fragment = new ExampleFragment();
transaction.add(R.id.fragment_container, fragment);
transaction.commit();

// Commit the transaction
transaction.commit();

その後、コンテンツを別の に置き換えるには、Fragmentで次のようにする必要がありますonClick

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

したがって、基本的には and を使用する必要がFragmentTransaction.add()ありFragmentTransaction.replace()ます。

于 2013-10-21T10:33:02.927 に答える
0

古いバージョンの Android をサポートする (フラグメントを回避する) 場合は、 を使用し<include>て各アクティビティにメニュー レイアウトを追加できます。このコードを別のクラスにカプセル化することはできますが、各アクティビティの onCreate でクリック イベントを接続する必要があります。

于 2013-10-21T10:25:43.203 に答える