gpt4 book ai didi

android - 如何在 android 中的 fragment 更改时更改主页按钮?

转载 作者:太空狗 更新时间:2023-10-29 13:58:55 27 4
gpt4 key购买 nike

我正在开发一个应用程序,其中有 fragment “A”和 fragment “B”, fragment “A”中有一个抽屉导航。当我切换到 fragment “B”时我想要什么我想要抽屉导航图标变为后退图标。请告诉我该怎么做。

最佳答案

首先:在您的 Activity (持有工具栏和主页按钮的 Activity )中,您需要创建一个 bool 变量(一个标志)来标记主页按钮是三明治菜单还是后退箭头。

public class TheActivity {
private boolean backButtonEnabled = false; //starting with the menu icon
...
}

第二:在您的 Activity(持有工具栏和主页按钮的 Activity )中,您需要创建一个方法 enableBackButton(boolean enable) 来将工具栏更改为主页如果启用为真,则向后箭头添加图标;如果启用为假,则为三明治菜单,并设置相应的 bool 标志。

public class TheActivity {
...
public void enableBackButton(boolean enable) {
this.backButtonEnabled = enable;
if(enable) {
toolbar.setNavigationIcon(backIcon);
} else {
toolbar.setNavigationIcon(sandwichIcon);
}
}
}

第三:在 fragment B(如果可能的话,在其他 fragment 中)你应该在到达 时调用 getActivity().enableBackButton(true/false) onCreateView()onDestroyView()。此时,如果您运行该应用,您将能够更改 fragment 并看到主页按钮在没有操作集的情况下发生变化。

public class FragmentB {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
((TheActivity)getActivity().enableBackButton(true);
...
}

@Override
public void onDestroyView() {
((TheActivity)getActivity().enableBackButton(false);
super.onDestroyView();
}
}

最后:您需要根据您在按钮时设置的标志 backButtonEnabled 处理 onOptionsItemSelected(MenuItem item) 中的主页按钮点击改变了。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home: {
if(backButtonEnabled) actionBack(); //desired back action
else actionSandwich(); //open drawer
break;
}
}
return super.onOptionsItemSelected(item);
}

希望这对您有所帮助并对您的应用有所帮助!问候!

关于android - 如何在 android 中的 fragment 更改时更改主页按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342445/

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