gpt4 book ai didi

android - 使用抽屉导航实现向上按钮操作

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:18 27 4
gpt4 key购买 nike

问题

我正在使用来自 Android Studio 模板的抽屉导航。我想在我的一些 fragment 中使用 UP 按钮(箭头) 代替 “汉堡包”按钮。我使用 AppCompatActivity

我使用此代码显示向上按钮箭头:

public void UseUpButton(boolean value) {
ActionBar actionBar = getSupportActionBar();
if (value) {
actionBar.setDisplayHomeAsUpEnabled(false);
toggle.setDrawerIndicatorEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
} else {
toggle.setDrawerIndicatorEnabled(true);
}
}

尝试过的变体:

但是我无法捕捉到点击这个按钮。我尝试了一些方法:

使用onOptionsItemSelected

public boolean onOptionsItemSelected(MenuItem item) {

Log.d("WTF", "menu");
switch (item.getItemId())
{
case android.R.id.home:
getFragmentManager().popBackStack();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

我将 getSupportActionBar().setHomeButtonEnabled(true); 添加到我的 Activity::onCreate,但是当我按下向上按钮并在我按下菜单项时正常工作。

使用 ActionBarToggle OnClickListener

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open,
R.string.navigation_drawer_close);

drawer.setDrawerListener(toggle);
toggle.syncState();
toggle.setToolbarNavigationClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {

}
});

但是这个方法也不会在按下向上按钮时调用。

结论:

那么,我怎样才能捕捉到向上按钮按下事件呢?

最佳答案

几天前我在某个地方发现了这个...

在我的代码中,我初始化了 ActionBarDrawerToggle。它有一些构造函数,但我对此感兴趣:

1

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

2

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

看一看:第二个构造函数Toolbar工具栏参数

如果你想处理UP BUTTON事件不要使用第二个构造函数,先使用。

例子:

toggle = new ActionBarDrawerToggle(
this,
drawer,
R.string.navigation_drawer_open,
R.string.navigation_drawer_close);

getSupportActionBar().setHomeButtonEnabled(true);

setHomeButtonEnabled 很重要,否则您将看不到 Hamburger 或 Up 按钮。

关于android - 使用抽屉导航实现向上按钮操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36083785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com