Java Android-Jetpack导航
在Android Studio中使用Kotlin语言创建一个新项目并选择导航抽屉活动后,导航就像一个魔咒一样工作。但当我用Java语言生成同一个项目时,它不会导航到另一个片段。这个怎么了?有人能帮我吗?我也有同样的问题 我的解决办法是: 修改main_activity.xml:将NavigationView标记移动到抽屉布局的末尾 如何得到这个问题 环境:Java Android-Jetpack导航,java,android,android-jetpack-navigation,Java,Android,Android Jetpack Navigation,在Android Studio中使用Kotlin语言创建一个新项目并选择导航抽屉活动后,导航就像一个魔咒一样工作。但当我用Java语言生成同一个项目时,它不会导航到另一个片段。这个怎么了?有人能帮我吗?我也有同样的问题 我的解决办法是: 修改main_activity.xml:将NavigationView标记移动到抽屉布局的末尾 如何得到这个问题 环境: 安卓工作室:3.5 编译版本:29 BuildTools版本:“29.0.0” targetSdkVersion:29 步骤: 进入安
- 安卓工作室:3.5
- 编译版本:29
- BuildTools版本:“29.0.0”
- targetSdkVersion:29
- 进入安卓工作室
- 文件->新建->新模块->手机和平板电脑模块->下一步->输入“测试”作为应用程序/库名称->下一步->导航抽屉活动->下一步->完成
- 选择模块“测试”,然后单击运行按钮
- 进入android手机
- 默认情况下,该页面显示HomeFragment
- 单击
滑入抽屉布局菜单按钮
- 单击菜单中的
gallery
- 抽屉布局已关闭,但碎片未更改为GalleryFragment
我们应该这样更改它(将NavigationView
移动到DrawerLayout
的末尾):
这个问题是怎么来的
我们可以通过DroperLayout和ViewDragHelper的源代码找到原因:
抽屉布局
public类抽屉布局扩展了视图组{
//..........
@凌驾
公共布尔值onInterceptTouchEvent(MotionEvent ev){
final int action=ev.getActionMasked();
//.........
布尔值fortap=false;
开关(动作){
case MotionEvent.ACTION\u DOWN:{
最终浮点数x=ev.getX();
最终浮动y=ev.getY();
如果(mScrimOpacity>0){
/////////////////
//
//看看:ViewDragHelper.findTopChildUnder(x,y)
//它从最后一个到第一个查找孩子
//
/////////////////
最终视图子对象=mLeftDragger.findTopChildUnder((int)x,(int)y);
if(child!=null&&isContentView(child)){
//如果子级是抽屉布局的contentView,则截取它
fortap=true;
}
}
//.........
打破
}
//...........
}
返回interceptForDrag | | interceptForTap | | hasPeekingDrawer()| | McChildrenCanceledTouch;
}
//...........
}
视图绘制器
public类ViewDragHelper{
//.........
@可空
公共视图findTopChildUnder(整数x,整数y){
final int childCount=mParentView.getChildCount();
对于(int i=childCount-1;i>=0;i--){
final View child=mParentView.getChildAt(mCallback.getOrderedChildIndex(i));
如果(x>=child.getLeft()&&x=child.getTop()&&y
请提供更多信息,如异常stacktrace、导致问题的代码或您试图解决的问题。我只是使用导航抽屉活动和Java语言创建了一个新项目,但当我单击菜单时,它不起作用。我不会添加一些代码或任何东西。这只是一个新项目@SanketBhat@HusniKamal当前位置如果你不提供更多信息,任何人都不可能知道你那边出了什么问题,问题很可能就解决了。如果您不知道相关代码是什么,那么将项目上传到github可能会让人们看到问题。“创建新项目后”不清楚?没关系,谢谢您的回复:)@ChristianUpdate:当我使用导航抽屉活动创建一个新项目时,活动\u main已更改,与您的代码@billy相同