如何在活动开始时打开drawerLayout?
问题描述:
我想要在开始时打开抽屉布局的明星活动。我试图简单地把如何在活动开始时打开drawerLayout?
mDrawerLayout.openDrawer(gravity.END());
在不同的地方在我的代码,但不管,直到我关闭并重新打开抽屉中的物品变得无法点击。
有没有人有这样的运气?主要是出于用户体验的原因添加此功能。
我的抽屉布局有一个列表视图,其中的点击改变了我在活动中的RecyclerView。
这是我的XML文件,可供任何需要它的人使用。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:orientation="vertical">
<!--android:elevation="4dp"-->
<!-- The drawer is given a fixed width in dp and extends the full height of
the container. -->
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The navigation drawer -->
<ListView
android:id="@+id/right_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:alpha="0.8"
android:background="@color/colorPrimary"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar2"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:alpha="1"
android:background="?attr/colorAccent"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat" />
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
android:layout_below="@+id/my_toolbar2">
<android.support.v7.widget.RecyclerView
android:id="@+id/listview2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/colorPrimary"
android:dividerHeight="8dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:src="@drawable/ic_add_circle_outline_white_24dp"
android:visibility="visible"
app:elevation="24dp"
app:fabSize="auto"
app:layout_anchor="@+id/listview2"
app:layout_anchorGravity="bottom|end"
app:rippleColor="#FFF" />
</android.support.design.widget.CoordinatorLayout>
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
答
尝试做这样在你Activity
的onCreate(Bundle savedInstanceState)
:
mDrawerLayout = findViewById(R.id.drawer_layout);
mDrawerLayout.postDelayed(new Runnable() {
@Override
public void run() {
if (mDrawerLayout != null) {
mDrawerLayout.openDrawer(Gravity.LEFT);
}
}
}, 200);
这是太伟大,因为用户现在可以看到抽屉开的动画,而不是它只是被开何时开始。 –