Articles of android viewpager

'Activity重启后调用'getSupportFragmentManager()'时,'IllegalStateException:Activity已经被销毁'

我有一个父级片段活动有一个ViewPager其中包含一个孩子ViewPager。 子ViewPager包含每个页面的片段。 我使用callback接口在这些子页面片段和顶级父页面片段活动之间进行通信,例如 public interface Callbacks { public void onItemSelected(Link link); } 在父Fragment Activity中,我监听onItemSelected事件,例如 @Override public void onItemSelected(Link link) { Bundle argumentsFront = new Bundle(); argumentsFront.putParcelable(FragmentComments.ARG_ITEM_ID, link); fragmentComments = new FragmentComments(); fragmentComments.setArguments(argumentsFront); getSupportFragmentManager().beginTransaction().replace(R.id.post_container, fragmentComments).commitAllowingStateLoss(); } 现在这个工作正常,当应用程序第一次启动。 如果您打开设备更改方向,则重新启动“活动”。 所有片段重新初始化自己,因为我使用setRetainInstance(true); (我不调用setRetainInstance(true)在子ViewPager的片段,因为它不被支持)。 但是,如果我点击子ViewPager的片段中的列表项,我得到这个exception: FATAL EXCEPTION: main java.lang.IllegalStateException: Activity has been destroyed at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1342) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595) at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:578) 有谁知道为什么发生这种情况? […]

与选项卡和Viewpager的Android碎片

我们正在构build一个如上所示的嵌套有碎片的应用程序。 选项卡具有 – 详细信息选项卡和MAps选项卡 详细信息选项卡将有一个幻灯片 – 像查看页面滑块和下面的信息将滚动。 地图选项卡将显示地图。 我已经实现了标签和地图以及滑块,如上所示。 现在我很困惑如何添加滑块下面的内容,这将使详细信息选项卡滚动。 我试过了什么? 在CLick的Details选项卡上,Fragment将会尝试膨胀里面的两个Fragment布局。 AndroidTabLayoutActivity.java package com.mink7.abs; import com.viewpagerindicator.CirclePageIndicator; import android.app.TabActivity; import android.content.Intent; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.widget.TabHost; import android.widget.TabHost.TabSpec; import java.util.Random; import android.support.v4.app.FragmentTabHost; import com.viewpagerindicator.PageIndicator; import android.support.v4.app.FragmentActivity; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class AndroidTabLayoutActivity extends TabActivity { /** Called when the activity is […]

在滑动抽屉项目之间滑动之后,TabLayout和ViewPager-Tabs不起作用

TabLayout和ViewPager – 在滑动抽屉项目之间滑动后,单击选项卡不起作用。 我工作的应用程序有滑动抽屉和Tablayout。 我参考本教程滑动抽屉和TabLayout 。 滑动的抽屉里面 TaskList – > TabLayout(Tabs(Today,Monthly,Yearly)) 设置 命令 我有滑动抽屉和Tablayout之间的问题。 第一次viewpager正确加载。 但是当我移动到下一个抽屉项目像(设置片段)之后,回到TaskList选项卡片段viewpager不能加载任何片段,当滑动该页面然后加载几个片段。 这里是Java代码 public class TaskListFragment extends Fragment { private Toolbar toolbar; private TabLayout tabLayout; private ViewPager viewPager; public TaskListFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup […]

在ViewPager和FragmentStatePagerAdapter上销毁页面

我们正在尝试创build一个基于ViewPager的Android应用程序,该应用程序在运行时接收添加和删除页面的指令。 几乎像一个标签浏览器的经验,你可以删除当前标签,或删除一个特定的选项卡。 在Google文档之后,我们使用了FragmentStatePagerAdapter,这是为了在有大量页面的情况下使用,更像是列表视图。 但是,当我们尝试: – 删除不在屏幕上的页面 – 并从同一类创build一个新的片段对象 – 并在页面的相同位置删除我们注意到,Android平台恢复死网页,并显示给用户。 我们刚刚创build的新对象不会运行“onCreate”,“onCreateView”或“onActivityCreated”。 我们正在寻找解决这个问题的方法,迫使平台使用同一个类中的新片段对象。 有任何想法吗? 我们发现,如果我们摧毁了当前页面,那么这个平台确实摧毁了这个页面,并从同一个类中创build了一个新的对象。 这是一个复制问题和这种行为的小例子。 资料来源: http : //dl.dropbox.com/u/8333012/SimpleAdapter/SimplePager.zip video: http : //www.youtube.com/watch?v = -oaXXwU8PSI& hd=1 从这个项目中,当您触摸第一页上的TextView时,它被devise为将第二页(绿色)移除到新的蓝页。 你会看到,即使从第一页这样做,第二页仍然是绿色的。 但是当你按下第二页上的返回Androidbutton(绿色)并触摸TextView时,所创build的第二页将是正确的蓝色。

如何实现碎片之间的滑动手势?

我想实现我的Android应用程序,我正在开发Android Studio的IDE。 在不同的标签(片段)之间滑动。 我尝试在网上search和StackOverflow,但我不明白。 我的操作栏是经典的,在Android 3.0以上的版本。如果你能给我一些build议或者援助的例子,我将不胜感激。 有了这个,我感谢你。

如何更新列表,只要选项卡在浏览器中更改

在我的应用程序中,我使用导航选项卡使用视图寻呼机。 我已经能够成功地使用以下代码绘制标签: https://github.com/codepath/android_guides/wiki/Sliding-Tabs-with-PagerSlidingTabStrip 在这里我已经使用滑动选项卡和查看寻呼机都得到导航选项卡。一切工作正常,但列表并没有得到更新,当我移动到另一个选项卡。 OnResume()被调用,即使对象列表variables也在debugging时得到更新,但视觉列表没有得到更新。 在这里,我是一些代码片段: 对于Tab1:在我的情况下是ACTIVE选项卡 @Override public void onResume() { super.onResume(); if(!internetUtil.isConnectedToInternet(getActivity())){ mSwipeRefreshLayout.setEnabled(false); }else{ mSwipeRefreshLayout.setEnabled(true); new GetUsersFromServerTask().execute(); // Here i am making the network calls } } 在选项卡2:哪个是存档选项卡 @Override public void onResume() { super.onResume(); new GetUsersArchivedFromServerTask().execute(); // Network calls } 在MainActivity中: public class MaterialTab extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { […]

我如何设置viewpager片段的标签?

我,m使用slidingTabLayout与4个选项卡和每个选项卡viewpager和4片段类。 我需要重新加载我的一个片段(第一个选项卡)在我的项目中,当用户点击一些button,为此我需要有一个标签为该片段 我的问题是:我怎么能设置一个视图片段的标签? 我的MainActivity标签和viewpager代码: public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { Toolbar toolbar; ViewPager pager; ViewPagerAdapter adapter; SlidingTabLayout tabs; CharSequence Titles[]={"نوع","قیمت","برند","همه"}; int Numboftabs = 4; @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() […]

平滑滚动在ViewPager(支持库)中不起作用

我正在编写使用ViewPager来托pipeFragment的应用程序。 当我以编程方式更改片段时,平滑滚动function不起作用。 我使用ViewPager.setCurrentItem(int item,boolean smoothScroll)`方法。 也许有人知道一个解决方法这个错误? 也许animation? 编辑:我正在使用支持包。 而问题是,我使用ViewPager.setCurrentItem(2, true)还是ViewPager.setCurrentItem(2, false)的结果是一样的。 视图切换非常快(不平稳)。

在片段中调用setHasOptionsMenu(true)会导致在Activity中多次调用onCreateOptionsMenu

我有一个简单的Activity ,其中包含一个ViewPager 。 我试图添加一些菜单项从我的Fragment之一菜单,但是我收到了一些奇怪的行为。 调用: setHasOptionsMenu(true); 从我的片段导致封闭的Activity的onCreateOptionsMenu()方法每次我在ViewPager更改片段时被ViewPager 。 这是正常的吗?

什么时候getItemPosition应该考虑项目位置的变化?

Android的PagerAdapter类中getItemPosition方法的文档声明: 当主视图试图确定一个项目的位置是否改变时调用。 这个方法应该被调用来指示一个项目在那个适配器的项目组中的位置是否已经改变了。 但是,它从来没有说明什么时候压倒一切的方法应该考虑改变立场。 这是否意味着位置与上次调用getItemPosition项目时的位置不同? 这是否意味着该项目的位置是不同于上次notifyDataSetChanged被调用? 或者这意味着该项目的位置是不同的项目被添加到viewPager?