具有相同布局的多个片段

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 路由

在 Android 中使用具有多个布局的单个片段

有没有办法使用相同的布局动态创建片段并向它们显示数据?

多个 Web 项目,在 Visual Studio 中(几乎)布局相同

具有相同功能的活动和片段

具有相同 SKPhysics 身体对象的多个精灵