gpt4 book ai didi

android - 我无法在实现 ActionTab 监听器的另一个 fragment 的 onTabSelected 中调用 fragment

转载 作者:太空狗 更新时间:2023-10-29 13:30:28 25 4
gpt4 key购买 nike

我正在尝试创建一个在内容部分有一个 ListView 的 fragment ,作为默认 View 。此 View 有 ActionBar 选项卡。到目前为止,我能够创建它。

LaunchListFragment 代码

public class LaunchListFragment extends ListFragment implements ActionBar.TabListener {
public static String LIST_TYPE = "invalid";
GenericListData g_data[] = null;
private ViewPager mViewPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View result = inflater.inflate(R.layout.fragment_launch_list,
container, false);

setActionTabs();
setList();
return (result);
}

public static LaunchListFragment newInstance(String type) {
LaunchListFragment frag = new LaunchListFragment();
Bundle args = new Bundle();
LIST_TYPE=type;

args.putString(LIST_TYPE, type);
frag.setArguments(args);

return (frag);
}

我想要的是,当您单击 onTabSelected() 时,我想更改 View ,我正在使用 PagerFragment 以及使用 FragmentPagerAdapter 生成的 View

@Override
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {

getChildFragmentManager().beginTransaction()
.add(android.R.id.content,
new PagerFragment()).commit();
}

问题是,我不能使用 getChildFragmentManager 或 getFragmentManager 来调用 PagerFragment,我得到编译错误以将 PagerFragment 更改为 app.Fragment。即使我改变了它,它仍然会提示。

我怀疑 support.Fragment 和 app.Fragment 之间存在某种冲突。

除了使用嵌套 Fragment 之外,还有其他方法可以实现这一目标吗?

感谢任何帮助。

最佳答案

我建议您使用 viewPager,让您的两个 fragment 显示在选项卡选择上(在操作栏上)。根据需要使用 FragmentStatePagerAdapter 或 FragmentPagerAdapter,然后初始化 viewPager 并设置适配器。然后在'onTabSelected()'中获取标签位置然后显示相应的viewPager页面。

       FragmentPagerAdapter fragmentStagePageAdapter = new SearchStatePagerAdapter(getFragmentManager());


public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.venues_tabhost_layout, container, false);

mViewPager = ( com.edenpod.goinout.view.ViewPager) mView.findViewById(R.id.pager);
mViewPager.removeAllViews();
mViewPager.setAdapter(fragmentStagePageAdapter);
mViewPager.setOffscreenPageLimit(3);
----------------
---------------
--------------
}

public void onTabChanged(Tab tab, android.app.FragmentTransaction ft) {
int pos = tab.getCurrentTab();
if( mViewPager!= null && pos == 0 ) {
mViewPager.setCurrentItem(pos);
} else if( mViewPager != null && pos == 1 ) {
mViewPager.setCurrentItem(pos);
} else if( mViewPager != null && pos == 2 ) {
mViewPager.setCurrentItem(pos);
}
}

// Example PagerAdapter
public class SearchStatePagerAdapter extends FragmentPagerAdapter{

private ArrayList<Fragment> mFragmentsList;

public SearchStatePagerAdapter(FragmentManager fm) {
super(fm);
mFragmentsList = new ArrayList<Fragment>();
mFragmentsList.add(new VenueSearchFragment());
mFragmentsList.add(new PeopleSearchFragment());
}

@Override
public int getCount() {
return mFragmentsList.size();
}

@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = mFragmentsList.get(position);
break;
case 1:
fragment = mFragmentsList.get(position);
break;
}
return fragment;
}

关于android - 我无法在实现 ActionTab 监听器的另一个 fragment 的 onTabSelected 中调用 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com