Android 从另一个片段返回时,如何在viewpager中显示片段?
我有一个片段,其中几个片段是viewPager,其中包括每个节目的列表视图。当我们转到下一个片段,但“下一个片段返回”按钮在我的viewpager中没有显示任何内容时,单击任何项目listviewAndroid 从另一个片段返回时,如何在viewpager中显示片段?,android,android-fragments,android-listview,android-viewpager,Android,Android Fragments,Android Listview,Android Viewpager,我有一个片段,其中几个片段是viewPager,其中包括每个节目的列表视图。当我们转到下一个片段,但“下一个片段返回”按钮在我的viewpager中没有显示任何内容时,单击任何项目listview public class HomePage extends Fragment { private View view; private HomeTabsAdapter mAdapter; private ViewPager mPagerHome; public PagerSlidingTabStri
public class HomePage extends Fragment {
private View view;
private HomeTabsAdapter mAdapter;
private ViewPager mPagerHome;
public PagerSlidingTabStrip mTabs;
private Typeface typeface;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.homepage_fragment, container, false);
mTabs = (PagerSlidingTabStrip) view.findViewById(R.id.TabsHome);
mPagerHome = (ViewPager) view.findViewById(R.id.pagerHome);
ArrayList<String> title = new ArrayList<>();
title.add("خبر داغ");
title.add("اقتصادی");
title.add("بین المللی");
mAdapter = new HomeTabsAdapter(HomePage.this.getFragmentManager(), title);
mPagerHome.setAdapter(mAdapter);
mPagerHome.setCurrentItem(title.size());
mTabs.setViewPager(mPagerHome);
typeface = Typeface.createFromAsset(getActivity().getAssets(),"fonts/IRAN-Sans.ttf");
//jologiri az 3 noghte kardane esme tab ha va font
LinearLayout tabsContainer = (LinearLayout) mTabs.getChildAt(0);
for (int i = 0; i < tabsContainer.getChildCount(); i++) {
TextView tab = (TextView) tabsContainer.getChildAt(i);
tab.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f));
tab.setPadding(8, 0, 8, 0);
tab.setTypeface(typeface);
}
return view;
}
公共类主页扩展片段{
私人视野;
私人住宅公寓;
私人寻呼机;
公共页滑动标签;
私人字体;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.u碎片,容器,假);
mTabs=(PagerSlidingTabStrip)view.findViewById(R.id.TabsHome);
mPagerHome=(ViewPager)view.findViewById(R.id.pagerHome);
ArrayList title=新的ArrayList();
标题.添加(“标题”);
标题。添加(“اقتادی”);
标题。添加(“بی㶕لللی”);
mAdapter=newhometabsadapter(HomePage.this.getFragmentManager(),title);
mPagerHome.setAdapter(mAdapter);
mpageHome.setCurrentItem(title.size());
mTabs.setViewPager(mPagerHome);
typeface=typeface.createFromAsset(getActivity().getAssets(),“font/IRAN Sans.ttf”);
//jologiri az 3 noghte kardane esme标签ha va字体
LinearLayout选项卡Container=(LinearLayout)mtab.getChildAt(0);
对于(int i=0;i
和我的视图寻呼机适配器
public class HomeTabsAdapter extends FragmentPagerAdapter {
public ArrayList<String> mTitle;
public HomeTabsAdapter(FragmentManager fm, ArrayList<String> mTitle) {
super(fm);
this.mTitle = mTitle;
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return HotNews.newInstance();
case 1:
return Economic.newInstance();
case 2:
return International.newInstance();
}
return null;
}
@Override
public int getCount() {
return mTitle.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitle.get(position);
}}
公共类HomeTabsAdapter扩展了FragmentPagerAdapter{
公共阵列列表mTitle;
公共HomeTabsAdapter(FragmentManager格式,ArrayList mTitle){
超级(fm);
this.mTitle=mTitle;
}
@凌驾
公共片段getItem(int位置){
开关(位置){
案例0:
返回HotNews.newInstance();
案例1:
return Economic.newInstance();
案例2:
return International.newInstance();
}
返回null;
}
@凌驾
public int getCount(){
返回mTitle.size();
}
@凌驾
公共字符序列getPageTitle(int位置){
返回mTitle.get(位置);
}}
还有一个碎片
public class International extends Fragment {
private View view;
private ItemNews itemNews;
private NewsAdapter adapter;
private FloatingActionButton btn;
private ExpandableListView list;
private static final int SCROLL_TO_TOP = -1;
private static final int SCROLL_TO_BOTTOM = 1;
private static final int SCROLL_DIRECTION_CHANGE_THRESHOLD = 5;
private int mScrollDirection = 0;
private ItemChild childItem;
private ArrayList<ItemChild> child;
public static International newInstance(){
International international = new International();
return international;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.listnews_fragment, container, false);
list = (ExpandableListView) view.findViewById(R.id.ListNews);
list.setGroupIndicator(null);
String text = " مسی به همراه بارسلونا ۶ بار قهرمان لالیگا، دو بار قهرمان جام حذفی اسپانیا، پنج بار برنده سوپرکاپ اسپانیا، سه بار قهرمان لیگ قهرمانان اروپا، دو بار\n" +
" قهرمان سوپر کاپ اروپا و دو بار قهرمان جام باشگاههای جهان شده است. مسی اولین و تنها بازیکنی است که در چهار رقابت لیگ قهرمانان اروپا به عنوان آ";
child = new ArrayList<>();
for (int i = 0; i <2; i++) {
childItem = new ItemChild();
childItem.setId(i);
childItem.setImageChild("http://bit.do/logo00");
childItem.setTitleChild("ورزش سه -");
childItem.setDate("8ساعت قبل");
child.add(childItem);
}
List<ItemNews> news = new ArrayList<>();
for (int i = 0; i < 10; i++) {
itemNews = new ItemNews();
itemNews.setId(i);
itemNews.setmIconSource("http://bit.do/logo00");
itemNews.setmImage("http://bit.do/image00");
itemNews.setmSource("ورزش سه -");
itemNews.setmTime("8ساعت قبل");
itemNews.setmTitle("messi");
itemNews.setmNews(text);
itemNews.setChild(child);
news.add(itemNews);
}
adapter = new NewsAdapter(International.this, news,getActivity());
list.setAdapter(adapter);
btn = (FloatingActionButton) view.findViewById(R.id.Floating);
list.setOnScrollListener(new AbsListView.OnScrollListener() {
int mScrollPosition;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
View topChild = view.getChildAt(0);
int newScrollPosition = 0;
if (topChild == null) {
newScrollPosition = 0;
} else {
newScrollPosition = -topChild.getTop() + view.getFirstVisiblePosition() * topChild.getHeight();
}
if (Math.abs(newScrollPosition - mScrollPosition) >= SCROLL_DIRECTION_CHANGE_THRESHOLD) {
onScrollPositionChanged(mScrollPosition, newScrollPosition);
}
mScrollPosition = newScrollPosition;
}
});
return view;
}
公共类国际扩展片段{
私人视野;
私人项目新闻;
专用新闻适配器;
专用浮动操作按钮btn;
私有可扩展列表视图列表;
私有静态最终整数滚动到顶部=-1;
私有静态最终整数滚动到底部=1;
私有静态最终整数滚动\方向\更改\阈值=5;
私有int-mScrollDirection=0;
私人物品儿童物品;
私人ArrayList儿童;
公共静态国际newInstance(){
国际=新国际();
回归国际;
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.listnews\u碎片,容器,假);
list=(ExpandableListView)view.findViewById(R.id.ListNews);
list.setGroupIndicator(空);
本方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方在2014年的半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半ه+
" قهرمان سوپر کاپ اروپا و دو بار قهرمان جام باشگاههای جهان شده است. مسی اولین و تنها بازیکنی است که در چهار رقابت لیگ قهرمانان اروپا به عنوان آ";
child=newarraylist();
对于(int i=0;i=SCROLL\u DIRECTION\u CHANGE\u THRESHOLD){
OnScrollPosition已更改(mScrollPosition、newScrollPosition);
}
mScrollPosition=newScrollPosition;
}
});
返回视图;
}
尝试在片段活动
类中实现onBackPressed()
使用寻呼机
getCurrentItem()
…它肯定会工作:)fragment.v4中的我的寻呼机和activity中的fragment,不要使用fragment activity