-1

红线在“打开导航抽屉”和“关闭导航抽屉”下

import androidx.appcompat.app.ActionBarDrawerToggle;
setContentView(R.layout.activity_home);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle("Menu");
    setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toogle = new ActionBarDrawerToggle(this,
                drawer,
                toolbar ,
                "Open navigation drawer",
                "Close navigation drawer"

                );
        drawer.setDrawerListener(toogle);
        toogle.syncState();

这张图显示了问题

4

2 回答 2

1

如果您检查构造函数签名,您可以看到它接受字符串资源,int而不是String

public ActionBarDrawerToggle(Activity activity, DrawerLayout drawerLayout,
        Toolbar toolbar, @StringRes int openDrawerContentDescRes,
        @StringRes int closeDrawerContentDescRes) {
    this(activity, toolbar, drawerLayout, null, openDrawerContentDescRes,
            closeDrawerContentDescRes);
}

您需要将两者都更改String为字符串资源,例如R.string.YOUR_STRING位于 strings.xml 文件中的资源。

于 2022-02-10T14:23:16.590 回答
1

根据 Android 官方文档openDrawerContentDescRes 和 closeDrawerContentDescRes 是 int 数据类型。

ActionBarDrawerToggle (Activity activity, 
            DrawerLayout drawerLayout, 
            int openDrawerContentDescRes, 
            int closeDrawerContentDescRes)

因此,您需要将字符串更改为字符串资源 id ( R.string.YOUR_STRING) 来描述“打开抽屉”和“关闭抽屉”操作以实现可访问性。

于 2022-02-10T14:30:45.020 回答