假设我有一个导航抽屉,其中包含三个菜单项,即 cat1,cat2和cat3 。每当用户单击此按钮时,它将打开一个片段,该片段将从Web服务器中获取数据并解析JSON数据并显示在回收者视图中。
现在我的问题是。
我是否需要为导航抽屉的每个菜单项(即 cat1,cat2和cat3 )创建单独的片段?或者我可以使用一个片段并传递这样的参数
http://example.com?cat=1
插入该片段并加载回收者视图项目?
那么我应该遵循哪个过程来实现此目标,为每个菜单项分配单独的片段还是单个片段?谢谢。
答案 0 :(得分:1)
在这种情况下,您仅应使用一个片段,这是通过对类别cat1,cat2,cat3仅使用一个片段来复用设计和代码的方法。 您可以通过捆绑包将类别ID传递给片段。查看this教程
答案 1 :(得分:1)
如果您想在每次单击类别时获取数据,最好有一个片段并将其称为API。但是,如果使用三个片段,则除了可以更快地在类别之间切换之外,还可以减少API调用的次数。但是,它们之间需要权衡。同样在第二种情况下,您应该关心每次更新从API获取的内容。
答案 2 :(得分:1)
您绝对应该使用单个片段,并避免使用一些样板代码。这是您应该如何做:
[
{
.... # project data,
agents = [1,2,3,4,5,...], # primary keys of Agents
},
{
.... # project data,
agents = [1,2,3,4,5,...], # primary keys of Agents
},
]
要实例化片段,您可以简单地使用:
public class CategoryFragment extends Fragment {
public static CategoryFragment newInstance(int categoryId) {
CategoryFragment fragment = new CategoryFragment();
Bundle extras = new Bundle();
extras.putInt("categoryId", categoryId);
fragment.setArguments(extras);
return fragment;
}
...
// Determine which category you're on
private int getCategoryId() {
return getArguments().getIntExtra("categoryId", 1);
}
}