アプリに複数のアクティビティがあり、すべてのアクティビティにスライドドロワーを表示したいと考えています。私はここで与えられたアプローチに従っています。
アプリは、スライド ドロワー ハンドルのある黒い画面から始まります。
問題は、スライド ドロワーは表示されますが、FarmeLayout に配置されたアクティビティ レイアウトが表示されないことです。
活動は確かにあります。最初のアクティビティが読み込まれたときにトーストが表示されました。そこで、最初のアクティビティを変更して、次のアクティビティに進むためのボタンのみを配置しました。
次に、AVD の方向キーを使用して [OK] を押すと、次のアクティビティのトーストが表示されました。2 番目のアクティビティも非表示になります。
それで、私は何が欠けていますか???
最後に farme レイアウトを含む My Sliding Drawer レイアウト xml (LinearLayout):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_vertical">
<SlidingDrawer
android:id="@+id/slidingDrawer"
android:handle="@+id/drawerHandle"
android:content="@+id/contentLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:persistentDrawingCache="all">
<ToggleButton
android:id="@+id/drawerHandle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="5dp"
android:textSize="14dp"
android:textStyle="italic"
android:background="#BB00FF"
android:rotation="270"
android:textOn=""
android:textOff=""/>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contentLayout"
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/todo">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:text="@string/list_view_" />
</LinearLayout>
</SlidingDrawer>
<FrameLayout
android:id="@+id/act_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="#808080"
android:visibility="visible">
</FrameLayout>
</LinearLayout>
DrawerActivity Java コード:
public abstract class DrawerActivity extends Activity
{
protected LinearLayout fullLayout;
protected FrameLayout actContent;
@Override
public void setContentView(final int layoutResID)
{
fullLayout= (LinearLayout) getLayoutInflater().inflate(R.layout.act_layout, null); // Your base layout here
actContent= (FrameLayout) fullLayout.findViewById(R.id.act_content);
getLayoutInflater().inflate(layoutResID, actContent, true); // Setting the content of layout your provided to the act_content frame
super.setContentView(fullLayout);
}
}
setContentView(R.layout.XXXXXXXX);
すべてのアクティビティ ファイルで、onCreateメソッドに入れました。
では、アクティビティを表示するにはどうすればよいですか?? 私は何を間違っていますか??
以下を入れてみましたが効果なし
actContent.setVisibility(layoutResID);
or
actContent.setVisibility(View.VISIBLE);