Articles of android viewpager

嵌套的操作栏选项卡(与ViewPager)

我有一个使用操作栏选项卡(与ViewPager)的项目。 在两个标签之间滑动时,标签移动得非常顺畅,但是我需要在TAB 2中添加两个子标签,然后移到下一个标签或当然后面,就像在Glassdoor或Flipboard上一样。 请帮忙。 主要活动 public class MainActivity extends AppCompatActivity { private SectionsPagerAdapter mSectionsPagerAdapter; private ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.container); mViewPager.setAdapter(mSectionsPagerAdapter); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(mViewPager); } public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager […]

确定ViewPager中当前可见的片段

我有ViewPager ,我用来显示几个片段,我也有我的FragmentActivity TextView 。 我需要在TextView更改文本,具体取决于ViewPager当前select的ViewPager 。 我遇到的问题: ViewPager有一些caching机制,它实例化片段之前,它们是真正可见的用户,例如,当我select第二页ViewPager片段也在第三页上创build。 什么是我不能确定里面的片段是这个片段现在可见或它只是由ViewPager创build,但不是真正可见的用户。 我已经尝试使用OnPageChangeListener为此,但对其进行的更改对我来说是不可接受的(页面滚动,然后我的TextView已更改) 我真正需要的是:我需要确定ViewPager当前可见的ViewPager ,无论是从FragmentActivity还是从Fragment本身。 我怎样才能做到这一点?

Android的 – 如何find两个选项卡TextViews之间的选项卡指示器?

据我所知,有组件ViewPager和ActionBar可以支持“标签导航”模式,但他们没有中间标签指标之间的标签,只是定位在一个选项卡TextView下面。 Google Play应用如何实现此function: 与转换链接的定位 ?

Android的ViewPager与zoomable ImageView

我有一个由ImageViews制作的ViewPager,像这样实现: @Override public Object instantiateItem(View collection, int position) { ImageView iv = new ImageView(ctx); if (pageList.size() > position) iv.setImageBitmap(pageList.get(position)); else iv.setImageResource(R.drawable.loading); iv.setOnTouchListener(this); ((ViewPager) collection).addView(iv, 0); System.out.println("POS: " + position); return iv; } 任何机会,我可以通过双击(和刷图像)或捏可缩放的ImageView可缩放?

为什么TabLayout的标签图标/文本在页面之间滑动时闪烁?

背景 我已经使用了PagerSlidingTabStrip库了很长时间,显示在ViewPager上方的标签。 最近,我的任务是设置图标(使用select器,select与未select状态),而不是标签的文本,所以我做了。 但是,似乎图书馆不能很好地处理,有时显示空的标签,所以我已经移动到TabLayout ,这是谷歌devise库的一部分 问题 我已经注意到一些如何将图标添加到TabLayout的解决scheme,但是每个解决scheme都有一个或多个这样的问题: 没有图标显示 会显示图标,但可能会不时闪烁,特别是在设置了“exitFadeDuration”的情况下使用select器时,或者在快速滑动时 单击选项卡不会更改viewPager的当前页面。 代码 我使用的代码来自于MainActivity.java文件中的cheesesquare示例。 这是非常基本的: final TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); … tabLayout.setupWithViewPager(viewPager); 我试过的解决scheme是: 为每个选项卡设置一个图标(并删除适配器的“getPageTitle”代码): for (int i = 0; i < tabLayout.getTabCount(); i++) tabLayout.getTabAt(i).setIcon(…); 还尝试添加setOnTabSelectedListener为我没有使用select器。 此解决scheme导致闪烁效果(问题#2)。 扩展TabLayout以支持图标或实现TabViewProvider,如下所示。 扩展TabLayout根本不显示图标(问题#1),实现TabViewProvider有闪烁图标的问题(虽然很less见)。 对于getPageTitle,返回一个带有图标的SpannableString,如下所示。 这根本不显示图标。 我记得我也尝试过其他的解决scheme,但他们也有我提到的问题。 这个问题 什么是正确的方式来设置标签的图标? 有没有官方的方法来实现这一目标? 我想至less有一个select和未选中的图像为每个选项卡。 select时的转换是一个很好的奖励,我希望这样看起来更好。 为什么图标闪烁呢? 我注意到它甚至发生在文本中 有没有可能的解决方法?

片段内的Android TabHost

我正在开发一个Android应用程序,我已经使用了android developer.android.com中的FragmentPager标签示例 ),这个例子使用了标签内容的片段,现在我想把一个tabHost放在其中一个片段中,我尽力而为第二个标签主机没有显示内容,我可以看到选项卡标题,但没有内容,我试图使用Intent作为TabContent。 我不认为我有任何相关的代码发布在这里,但如果你需要我可以在这里发布。 层次结构是:FragmentActivity-> TabHost-> Fragments-> TabHost – >(意图或片段,这是问题领域) 任何build议,将不胜感激。

FragmentPagerAdapter与ViewPager和两个片段。 从第二个开始,更新第一个文本

我对FragmentPagerAdapter不熟悉,所以这将成为我们(你)严格阅读这些描述的问题之一。 结构:我有一个FragmentPagerAdapter (下面的代码),它将一次容纳两个片段。 第一个显示书籍摘录,第二个书目名单。 目标:我想实现标题中描述的内容:用户可以导航到寻呼机中的第二个片段,单击标题,然后我想将用户移回第一个片段,并告诉第一个片段更新文本。 第一个片段有一个triggerRefresh方法。 代码:我相信我的问题发生是因为FragmentPagerAdapter重用/创build碎片(我不明白)的方式。 这是我的class级: static class MyFragmentPagerAdapter extends FragmentPagerAdapter { public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return NUM_ITEMS; } @Override public Fragment getItem(int position) { switch(position) { case 0: return new ExcerptsFragment(); case 1: return new BookListFragment(); default: throw new IllegalArgumentException("not this many fragments: " + […]

滑动菜单locking上视图上的触摸事件

我试图在我的应用程序中使用滑动菜单 。 在我的索尼Xperia S上它工作得很好,但是当我尝试在HTC Desire HD上启动应用程序时,菜单通过手势打开完美,但其他触摸事件被阻止,并且顶部视图( ViewPager ,滑动菜单在它后面)不滚动。 有谁知道如何解决这个问题? 可能会有帮助给出答案(这是我如何使用菜单): private void initSlidingMenu() { mSlidingMenu = new SlidingMenu(getApplicationContext()); mSlidingMenu.setMode(SlidingMenu.LEFT); mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); mSlidingMenu.setShadowWidthRes(R.dimen.default_shadow_width); mSlidingMenu.setShadowDrawable(R.drawable.defaultshadow); mSlidingMenu.setBehindOffsetRes(R.dimen.default_behind_offset); mSlidingMenu.setFadeDegree(0.35f); mSlidingMenu.setMenu(firstPage); mSlidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT); } 在onPageSelected() ,我禁用菜单或启用它,所以菜单只出现在左页: @Override public void onPageSelected(int arg0) { ActivityCompat.invalidateOptionsMenu(this); if (arg0 == Utils.DEFAULT_PAGE) mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); else mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); }

奇怪的问题刷新ViewPager与新的内容:

我从Web服务接收数据,这个数据被parsing成Application类中的一个对象,这个对象在我的例子中是一个Report类,它包含了一个应该填充ViewPager的Tabs列表。 所以这个报告存储在Application类的currentReport参数中。 每个选项卡应该是ViewPager一个页面。 因此,当我第一次接收数据并parsing数据时,所有工作都完美无缺,并且查看传呼机中填充了正确的数据并显示出来。 当我想从服务器获取一个新的Report ,并使用parsing到currentReport参数的新数据刷新ViewPager时,我的问题就开始了。 我的ViewPager是可滑动的,并具有制表符导航,所以当我尝试重新实例化与新Report的ViewPager ,我看到正确数量的选项卡添加到tabHost 。 由于某种原因,新报告的片段与前一个片段重叠。 因此,如果新报告中的标签数量大于之前报告中的标签数量,那么除了部分新报告之外,我还可以看到之前报告中的标签(例如,如果第一份报告中有一个标签,在新的我有3,然后我看到从前一个和最后两个来自下一个片段)。 我已经开始从这个教程的发展,并添加smoe代码: http ://thepseudocoder.wordpress.com/2011/10/13/android-tabs-viewpager-swipe-able-tabs-ftw/ 这是我的标签活动代码: public class TabsViewPagerFragmentActivity extends FragmentActivity implements ViewPager.OnPageChangeListener, TabHost.OnTabChangeListener { static final String TAG = TabsViewPagerFragmentActivity.class.getSimpleName(); private TabHost mTabHost; private ViewPager mViewPager; private HashMap<String, TabInfo> mapTabInfo; public ViewPagerAdapter mPagerAdapter; private TextView tvReportName, tvTabTitle; private Button bBackToParameters; private Dialog progressDialog; private SGRaportManagerAppObj […]

显示的ViewPager第一个片段总是与FragmentStatePager错误

我正在尝试与PlayStore 5.1.x具有相同的view pager + tabsdevise。 这是我的布局: <?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:layout_gravity="center_vertical|center_horizontal" android:gravity="center_vertical|center_horizontal" android:orientation="vertical"> <com.astuetz.PagerSlidingTabStrip android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="50dp" android:background="@drawable/background_tabs" /> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> 我的适配器: public class MainPagerAdapter extends FragmentStatePagerAdapter { private ArrayList<FakeFragment> fragments; public MainPagerAdapter(FragmentManager fm) { super(fm); // TODO Auto-generated constructor stub fragments = new ArrayList<FakeFragment>(); } @Override public […]