gpt4 book ai didi

java - fragment 用户体验选择和通用性

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:20 25 4
gpt4 key购买 nike

我发现自己在纸牌游戏应用程序中的许多 Fragment 之间切换。

当我的用户创建套牌时,他会浏览以下 fragment :

牌组列表 fragment (点击“新牌组”)->职业选择 fragment (法师、战士等)->名称选择 fragment ->返回牌组列表 fragment ,其中列出了我们的新牌组。

我这样做是为了有一个顺利的套牌创建过程,但这是我的两个问题:

1) 如果可以使用户体验更好、更流畅,是否建议使用比所需更多的 Fragment

2) 请注意,我执行以下操作来切换 Fragment:

Fragment fragment = new MyFragment();

FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

// Set argument(s) - Not all fragments set arguments
Bundle args = new Bundle();
args.putString("deckName", deckName);
fragment.setArguments(args);

fragmentTransaction.replace(R.id.content_frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

我希望创建一种通用方法,该方法采用可变数量的参数和要创建的 Fragment 类型并切换到所述 Fragment,而不是在一个 Fragment 之间使用类似的方法。

但我似乎不知道该怎么做。

请原谅这篇冗长的文章,谢谢。

最佳答案

查看我的代码:

    public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
replaceFragment(new HomeFragment());
}


public void replaceFragment(final Fragment fragment) {
getFragmentManager()
.beginTransaction()
.replace(R.id.container, fragment, fragment.getClass().getSimpleName())
.commit();
}

public void addFragment(final Fragment fragment) {
final Fragment hideFragment = getFragmentManager().findFragmentById(R.id.container);
getFragmentManager()
.beginTransaction()
.add(R.id.container, fragment, fragment.getClass().getSimpleName())
.hide(hideFragment)
.addToBackStack(hideFragment.getClass().getSimpleName())
.commit();
}
}

在Fragment中调用上述方法:

   final HomeFragment homeFragment = new HomeFragment();
final Bundle bundle = new Bundle();
bundle.putString("KEY","VALUE");
homeFragment.setArguments(bundle);
((MainActivity) getActivity()).addFragment(homeFragment);

关于java - fragment 用户体验选择和通用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41249079/

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