Android:使用FrameLayout组合布局 - 布局不可见

时间:2012-10-27 15:45:19

标签: android android-activity slidingdrawer android-framelayout

我的应用程序中有多个活动,我希望在所有活动中都出现一个滑动提款器。我遵循here给出的方法。

该应用程序以带有滑动拉手的黑色屏幕开始。

问题是滑动抽屉是可见的,但FarmeLayout中的活动布局是可见。

活动肯定存在。加载第一个活动时,Toasts出现了。所以我修改了我的第一个活动,只有一个按钮就可以进入下一个活动。

接下来,我使用了AVD上的方向键,然后按了确定键,显示了下一个活动的Toast。第二项活动也是隐藏的。

那我错过了什么?

我的滑动抽屉布局xml(LinearLayout),最后是farme布局:

<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);

0 个答案:

没有答案