栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

viewpager中的片段,找不到视图错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

viewpager中的片段,找不到视图错误

我找到了解决该问题的方法,并修改了您的类,以使该错误不再发生。

唯一的主要区别是您应该使用a

DialogFragment
而不是a
Dialog
,这样您就可以访问
getChildFragmentManager()
FragmentManager
从接收正确的信息
DialogFragment

即使您以前使用

getChildFragmentManager()
过,它也来自,
MyFragment
并且
PagerDialog
该类不是中的子片段
MyFragment

我已经测试了以下代码,现在应该可以正常工作。

我的碎片

public class MyFragment extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View v = inflater.inflate(R.layout.fragment_sandbox, container, false);        Button button = (Button) v.findViewById(R.id.button);        button.setonClickListener(new onClickListener() { @Override public void onClick(View arg0) {     DialogFragment newFragment = PagerDialog.newInstance();     newFragment.show(getChildFragmentManager(), "dialog"); }        });        return v;    }}

传呼对话框

public class PagerDialog extends DialogFragment {    public static PagerDialog newInstance() {        return new PagerDialog();    }    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View v = inflater.inflate(R.layout.dialog_fragment, container, false);        ViewPager mViewPager = (ViewPager) v.findViewById(R.id.view_pager);                MyAdapter mAdapter = new MyAdapter(getChildFragmentManager());        mViewPager.setAdapter(mAdapter);        return v;    }    private class MyAdapter extends FragmentStatePagerAdapter {        public MyAdapter(FragmentManager fm) { super(fm);        }        @Override        public Fragment getItem(int index) { return new DummyFragment();        }        @Override        public int getCount() { return 2;        }    }}

虚拟片段

public class DummyFragment extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View v = inflater.inflate(R.layout.fragment_dummy_layout, container, false);        return v;    }}

fragment_sandbox.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center">    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Test Fragment Dialog Pager"        android:textSize="24sp"        android:padding="20dp" /></LinearLayout>

dialog_fragment.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:orientation="vertical" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Fragment Dialog Title Text "        android:padding="10dp"        android:textColor="#333"        android:textSize="24sp"/>    <android.support.v4.view.ViewPager        android:id="@+id/view_pager"        android:layout_width="match_parent"        android:layout_height="200dp"/></LinearLayout>

fragment_dummy_layout.xml

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Fragment Dummy Text"        android:textSize="24sp"        android:textColor="#ff0000"/></LinearLayout>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453953.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号