【问题标题】:Always getting the error messsage: No drawer view found with gravity LEFT总是收到错误消息:在重力 LEFT 下找不到抽屉视图
【发布时间】:2020-01-03 17:18:10
【问题描述】:

我正在开发一个应用程序,但我在抽屉布局方面遇到了一些问题。我总是收到标题中提到的错误消息,但我没有这样的重力左值。我所拥有的只是具有 END 值的重力,仅此而已。 这是我的 Java 代码:

public class HomeActivity extends AppCompatActivity {

private ActionBarDrawerToggle toggle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    Toolbar mainToolBar =findViewById(R.id.main_page_toolbar);
    DrawerLayout mainDrawerLayout = findViewById(R.id.main_page_drawer_layout);
    NavigationView mainNavigationView = findViewById(R.id.main_page_navigation_view);

    setSupportActionBar(mainToolBar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().setHomeButtonEnabled(true);


    toggle = new ActionBarDrawerToggle(this,mainDrawerLayout,mainToolBar,R.string.openDrawer,R.string.closeDrawer);
    mainDrawerLayout.addDrawerListener(toggle);
    toggle.syncState();

}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    toggle.onConfigurationChanged(newConfig);
}
}

这是我的 XML 代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
 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_width="match_parent"
 android:layout_height="match_parent"
 tools:openDrawer="end"
 tools:context=".Activities.HomeActivity"
 android:id="@+id/main_page_drawer_layout"
 android:fitsSystemWindows="true">

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include layout="@layout/home_main_page"
        android:layout_height="match_parent"
        android:layout_width="match_parent"/>

</androidx.coordinatorlayout.widget.CoordinatorLayout>


<com.google.android.material.navigation.NavigationView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="end"
    app:headerLayout="@layout/home_side_menu_header_layout"
    app:menu="@menu/home_side_menu"
    android:layoutDirection="rtl"
    android:id="@+id/main_page_navigation_view"/>

【问题讨论】:

标签: android navigation-drawer slidingdrawer


【解决方案1】:

你需要处理navigation点击Toolbar如下:

mainToolBar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mainDrawerLayout.isDrawerOpen(GravityCompat.END))
            mainDrawerLayout.closeDrawer(GravityCompat.END);
        else
            mainDrawerLayout.openDrawer(GravityCompat.END);
    }
});

也不要忘记在需要时关闭抽屉,如下所示:

mainDrawerLayout.closeDrawer(GravityCompat.END)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多