具有相同布局的多个片段
Posted
技术标签:
【中文标题】具有相同布局的多个片段【英文标题】:Multiple Fragments with same layout 【发布时间】:2015-10-05 18:11:50 【问题描述】:我应该怎么做才能使多个片段具有相同的布局。我刚刚创建了它,但无法单独访问小部件。我认为这是因为它们具有相同的ID。我们如何重用布局文件?
示例: 每个客户端代表一个标签
客户端 1|客户端 2|客户端 3
[--姓名--][--姓名--][--姓名--]
客户端 1、2、3 使用相同的布局。我们如何重用布局?
【问题讨论】:
首先你真的需要一个片段吗?为什么不包装普通 Adapter 的简单 PagerAdapter ?外汇:selvin.pl/SimpleCursorPagerAdapter.java.txt 需要动态客户数量? 和?简单的视图会更好...... FragmenPagerAdapter 正在为每个项目创建一个片段......我的解决方案的工作方式与 ListView 类似,它重用视图,因此只会创建 AFAIK 3 视图...... 当然,您可以使用片段,但只需为每个客户端使用相同的类......但使用不同的参数 - 只需查看 FragmentPagerAdapter 文档中的示例 ... insted 参数“num”传递客户端 ID ...然后基于它在 onCreateView 中加载正确的客户端数据(或片段生命周期的其他更准确的事件)...如果您只想在 ViewPager 中显示数据,我会选择简单视图 【参考方案1】:点击按钮和管理片段时使用此代码
Fragment mFragment1 = new Fragment();
getFragmentManager().beginTransaction()
.replace(R.id.frame_container, mFragment1)
.addToBackStack("")
.commit();
在这个R.id.frame_container
中替换了新的片段..
【讨论】:
在事件监听器和滑动时创建而不是添加此代码。 ViewPager,FragmentStatePagerAdapter 我该怎么办? 像这样使用 ViewPage ,.. android.support.v4.view.ViewPager【参考方案2】:基本上是这样的。
对于经理:
Fragment fragment = MyFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment);
fragmentTransaction.commit();
对于 MyFragment():
public class MyFragment extends android.app.Fragment
public MyFragment()
// Empty constructor
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
View rootView = inflater.inflate(R.layout.fragment_planet, container, false);
return rootView;
【讨论】:
【参考方案3】:嗯,就像使用片段状态寻呼机适配器一样简单 http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html
有很多例子
【讨论】:
以上是关于具有相同布局的多个片段的主要内容,如果未能解决你的问题,请参考以下文章
使用具有不同片段字段的相同中继根查询的多个 react-router-relay 路由