我已经实现了嵌套片段.子片段包含BaseAdapter.当我切换(替换)子片段时,我得到Nullpointer异常.码:
public MyAdapter(final Context context,
final List<CusomObject> CusomObjectList) {
mInflater = LayoutInflater.from(context);
this.CusomObjectList = CusomObjectList;
}
Run Code Online (Sandbox Code Playgroud)
我在这一行得到错误 - mInflater = LayoutInflater.from(context);
我从Fragment 传递getActivity()了MyAdapter构造函数.
码:
adapter = new MyAdapter(getActivity(), customList);
listView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud) 我有一个ViewPager包含三个片段,我想将3个新片段放入第三个片段.这可能吗?
[ViewPager]
[Fragment 1]
[Fragment 2]
[Fragment 3]
[Fragment 3-1]
[Fragment 3-2]
[Fragment 3-3]
[ViewPager]
Run Code Online (Sandbox Code Playgroud)
编辑:我不能getChildFragmentManager()但只能getFragmentManager(),我正在使用android.support.v4.app:
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.layout.tools_frame5, new Plugins());
ft.commit();
Run Code Online (Sandbox Code Playgroud)
编辑:如何将3个活动放在第三个片段中,这可能吗?
android android-fragments android-viewpager android-nested-fragment
我正在尝试实现两个选项卡,还有一个导航抽屉.我可以单独做两个,但当我尝试将两者结合起来时,我会遇到问题.我最初有用于创建我的两个标签的代码和我的MainActivity中的导航抽屉,当时这是一个片段活动,但是当我清楚地知道导航抽屉上有一个Home选项时,我决定重构代码标签插入一个带有标签的片段,然后像以前一样用两个片段填充.
在启动时看起来很好但是当我点击导航抽屉中的home选项时,每个选项卡中的片段似乎被剥离,每次单击选项时都会添加两个选项卡.
private void selectItem(int position) {
Fragment fragment = new NullFragment();
switch (position){
case 0:
fragment = new HomeFragment();
break;
case 1:
//Placeholder
fragment = new PlanetFragment();
}
// update the main content by replacing fragments
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
// update selected item and title, then close the drawer
drawerListView.setItemChecked(position, true);
setTitle(drawerItemTitles[position]);
drawerLayout.closeDrawer(drawerListView);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
Run Code Online (Sandbox Code Playgroud)
HomeFragment.java
public class …Run Code Online (Sandbox Code Playgroud) tabs android android-fragments navigation-drawer android-nested-fragment
我在Fragment类中使用了ViewPager.在那个ViewPager中,每个页面都有三个页面显示自定义列表视图.ViewPager有时候显示列表视图在一段时间内显示空白页面.
使用ViewPager的Fragment类
public class Schedule extends Fragment{
RelativeLayout schedule_lay;
Schedule_fragment_adapter sfadp;
ViewPager pager;
TitlePageIndicator tpi;
PagerTabStrip pts;
@Override
public View onCreateView(LayoutInflater inflater,final ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
schedule_lay = (RelativeLayout) inflater.inflate(R.layout.schedule, container, false);
pager = (ViewPager) schedule_lay.findViewById(R.id.viewpager);
pts = (PagerTabStrip)schedule_lay.findViewById(R.id.page_title_indicator);
pts.setDrawFullUnderline(false);
pts.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
pts.setTabIndicatorColor(Color.parseColor("#ff3824"));
initialisePaging();
return schedule_lay;
}
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(getActivity(), Ongoing.class.getName()));
fragments.add(Fragment.instantiate(getActivity(), Upcoming.class.getName()));
fragments.add(Fragment.instantiate(getActivity(), Recent.class.getName()));
this.sfadp = new Schedule_fragment_adapter(super.getActivity().getSupportFragmentManager(), fragments);
pager.setAdapter(this.sfadp);
}
}
Run Code Online (Sandbox Code Playgroud)
FragmentPagerAdapter …
android android-fragments android-viewpager android-fragmentactivity android-nested-fragment
我在Android中面临嵌套片段的问题.当我旋转屏幕时,嵌套片段以某种方式存活.我想出了一个示例来说明这个问题.
public class ParentFragment extends BaseFragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_parent, container);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getChildFragmentManager()
.beginTransaction()
.add(getId(), new ParentFragmentChild(), ParentFragmentChild.class.getName())
.commit();
}
@Override
public void onResume() {
super.onResume();
log.verbose("onResume(), numChildFragments: " + getChildFragmentManager().getFragments().size());
}
}
public class ParentFragmentChild extends BaseFragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_child, null);
}
}
Run Code Online (Sandbox Code Playgroud)
BaseFragment只记录方法调用.这是我旋转屏幕时看到的.
ParentFragment? onAttach(): ParentFragment{420d0a98 #0 id=0x7f060064} …Run Code Online (Sandbox Code Playgroud)