我的最终目标是创建一个简单的材料设计待办事项列表。我只是处于早期阶段,但我遇到的问题似乎无法解决。当我将回收者视图添加到主活动时,导航菜单不会显示从左侧滑动或当我点击汉堡包菜单时。当我评论它时,它工作正常。有谁知道这个问题是什么?我非常确定这是一件简单的事情,但我已经在线研究了StackOverflow,并且似乎无法得出答案。你们过去都非常乐于助人,我希望能再次发生一些魔力!
我在这里按照教程系列进行了一次小调整,从视频#6开始,我希望在主要活动中使用回收器视图,而不是导航抽屉: https://www.youtube.com/playlist?list=PLonJJ3BVjZW6CtAMbJz1XD8ELUs1KXaTD
谢谢!
以下是有问题的布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent" >
<!-- Navigation Drawer -->
<LinearLayout
android:id="@+id/drawer_layout_overall"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- Include app_bar so the bar shows after drawer is opened -->
<include
android:id="@+id/app_bar"
layout="@layout/app_bar" />
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<fragment
android:id="@+id/fragment_navigation_drawer"
android:name="cca.habitrpgnativeclient.com.NavigationDrawerFragment"
android:layout_width="@dimen/nav_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
app:layout="@layout/fragment_navigation_drawer"
tools:layout="@layout/fragment_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
<!-- Tasks -->
<!--<android.support.v7.widget.RecyclerView-->
<!--android:id="@+id/tasks_layout"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:paddingTop="@dimen/app_bar_top_padding"-->
<!--android:paddingLeft="@dimen/tasks_left_padding" />-->
</RelativeLayout>
此外,这是有问题的方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Setup toolbar
toolbar= (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Setup navigation menu
NavigationDrawerFragment drawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
drawerFragment.setUp(((DrawerLayout) findViewById(R.id.drawer_layout)), toolbar);
// Setup tasks
// recyclerView = (RecyclerView) findViewById(R.id.tasks_layout);
// taskAdapter = new TaskAdapter(this, getTasks());
// recyclerView.setAdapter(taskAdapter);
// recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
(感谢您的编辑,我也添加了其他方法)
答案 0 :(得分:0)
目前,您的RecyclerView
正在Z轴上覆盖LinearLayout
(包含您的DrawerLayout
)。因此,您的DrawerLayout
不会收到任何触摸事件,这就是您的边框滑动不起作用的原因。显然,app_bar
<include>
是Toolbar
,我认为你的汉堡包是,而RecyclerView
也覆盖了这个,这就是为什么不起作用。< / p>
您的活动的主要用户界面位于您拥有FrameLayout
的位置。因此,要么将FrameLayout
替换为RecyclerView
,要么将RecyclerView
替换为FrameLayout
,要么将RecyclerView
放入您加载到的FrameLayout
中{{1}}。