Articles of android viewpager

停止安装Android的所有视图

我目前正在开发一款powershell使用ViewPager Widget的平板电脑应用程序。 我也同时在屏幕上看到了多个Viewpage。 现在我遇到以下问题:如果一个ViewPager滚动到下一个/上一个页面,它(当然)必须重新计算它的布局和添加/删除视图。 我注意到, requestLayout直到查看层次结构的顶部,因此使平板电脑屏幕上的所有视图无效(这是很多!)。 这是非常昂贵的 。 我现在的问题是:是否有可能围绕ViewPager实现一个框架,它执行初始布局,然后不向布局请求向上传递View Hierarchy,因为我知道在初始布局之后,框架保持相同的大小,不变。 我想出了以下的框架,但是它不能很好地工作,因为它不能100%的工作。 public class MyFrame extends FrameLayout { // VARIABLE CONTROLLING THE DISPATCH OF THE LAYOUT // REQUEST UP THE VIEW HIERARCHY private boolean doLayout = true; public MyFrame(Context context) { super(context); doLayout = true; } @Override public void requestLayout() { if (doLayout) // DO THE […]

ViewPagerindicator&actionbarsherlock不兼容TitlePageIndicator

我注意到最新版本的ViewPagerIndicator支持ICS风格的分频器,我试图解决这个问题和解决scheme,但不pipe我做什么,我都无法得到分频器显示在我的选项TitlePageIndicator的操作栏上。 我添加了IcsLayout作为容器,放置divider,showDividers和其他属性,但我仍然没有得到任何东西。 这是我的布局(奇怪的是,如果我切换IpsLayout的viewpager指标之一,应用程序崩溃): <com.actionbarsherlock.internal.widget.IcsLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.sosick.android.brink" android:layout_width="match_parent" android:divider="#ffffff" android:showDividers="middle" android:dividerPadding="8dp" android:dividerHeight="10dp" android:layout_height="match_parent" android:orientation="vertical" > <com.viewpagerindicator.TitlePageIndicator android:id="@+id/tpi_header" android:layout_width="match_parent" android:layout_height="wrap_content" textColor="@color/text_light" android:background="@drawable/ab_stacked_solid_brink" app:topPadding="10dp" app:footerPadding="15dp" app:footerColor="#a4ded7" app:footerIndicatorHeight="2dp" app:footerIndicatorStyle="underline" app:footerLineHeight="2dp" app:selectedBold="false" /> <android.support.v4.view.ViewPager android:id="@+id/vp_pages" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> </com.actionbarsherlock.internal.widget.IcsLinearLayout>

Android:ViewPager FragmentStatePagerAdapter获取当前视图

问 :如何获取ViewPager FragmentStatePagerAdapter的当前视图? 我花了将近24小时的时间在这个地方search适合的解决scheme。 获得现在的位置很简单,我已经知道了。 这是获取当前视图 。 FragmentStatePagerAdapter是必需的,而不是PagerAdapter 。 此解决scheme通过instantiateItem(View container, int position)build议setTag和findViewWithTag 。 这是为PagerAdapter。 但是在FragmentStatePagerAdapter , instantiateItem的ViewGroup参数不是 View param: instantiateItem(**ViewGroup** container, int position) 所以我希望这不是不可能的,是吗? 请帮忙!

如何将数据提供给PagerAdapter

我正在使用这个例子来使用ViewPager和PagerAdapter 。 但是,我怎么能提供来自像CursorAdapter这样的适配器的数据的PagerAdapter ,我使用CursorLoader加载数据? .setAdapter()上的.setAdapter()只需要一个PagerAdapter 。 然后我想我需要在PagerAdapter绑定CursorAdapter ,但是我找不到这样做的方法。

使用ViewPager + FragmentPagerAdapter处理方向更改

我无法通过ViewPager和FragmentPagerAdapter处理屏幕方向更改。 它在应用程序启动时工作正常,但在方向改变(可能丢失)后viewpager内的片段不可见。 我该如何解决这个问题。 以下是我的活动的结构: 编辑:这是清单文件 <?xml version="1.0" encoding="utf-8"?> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <application android:name="com.test.myapp.NetworkManager.TBVolleyInstance" android:allowBackup="true" android:icon="@drawable/launcher" android:label="@string/app_name" android:theme="@style/CustomActionBarTheme"> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <activity android:name=".Home" android:label="@string/app_name" android:windowSoftInputMode="adjustNothing" > </activity> <activity android:name=".RouterActivity" android:label="@string/app_name" > <intent-filter android:label="@string/app_name" > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> […]

Android中的分页视图传呼机的单独后退导航

我想要的是。 在一个标签滑动菜单上下文中,我想要replace一个标签中的另一个片段,并维护标签菜单,也是当前标签。 当滑动到另一个选项卡,并返回到原来的,我想要显示最后一个片段。 例如,我有tab_a与Fragment_1 , tab_b与Fragment_4和tab_c与Fragment_7 。 现在我想在Fragment_1中打开一个Fragment_1的button,但是我想要能够滑动到tab_b和tab_c的片段。 而当我回到tab_a时,必须显示Fragment_2 。 MainActivity | | ContainerFragment | | |_ _ _ Tab A | |_ _ _ Fragment 1 | | | |_ _ _ Fragment 2 | | | |_ _ _ Fragment 3 | | | |_ _ _ … | |_ _ _ Tab […]

使用ViewPager实现缩放缩放

我正在使用ViewPager从远程服务器检索图像。 一切正常,但问题是我不知道如何实现捏放大/缩小function。 我的代码如下 public class ImagePagerActivity extends BaseActivity { private ViewPager pager; private DisplayImageOptions options; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ac_image_pager); Bundle bundle = getIntent().getExtras(); String[] imageUrls = bundle.getStringArray(Extra.IMAGES); int pagerPosition = bundle.getInt(Extra.IMAGE_POSITION, 0); options = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.drawable.image_for_empty_url) .cacheOnDisc() .imageScaleType(ImageScaleType.IN_SAMPLE_INT) .build(); pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(new ImagePagerAdapter(imageUrls)); pager.setCurrentItem(pagerPosition); } protected void onStop() { […]

Challange:ViewPager的自定义animation。 更改所选元素的高度(查看倍数)

我目前正在ViewPager中切换页面之间的自定义animation。 当我向左滑动时,View正在向左移动,并从其下方看到新的View正在前方。 我想提出一个观点,那就是左边的(我处理的)像下面的图像那样缩小: 在第二和第三张照片上,我没有看到前面的新视图,但是我认为没有必要。 你有什么想法如何修改代码? 我想改变TableLayout,RelativeLayout和FrameLayout的高度,并保持两个TextViews的高度。 此外,我将不得不改变整个视图的X位置。 我期待着您的创意答案(代码)。 下面我附上我的animation代码。 import android.view.View; import android.widget.RelativeLayout; import android.annotation.SuppressLint; import android.support.v4.view.ViewPager.PageTransformer; public class DepthPageTransformer implements PageTransformer { private static float MIN_SCALE = 0.75f; @SuppressLint("NewApi") public void transformPage(View view, float position) { int pageWidth = view.getWidth(); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to […]

嵌套的操作栏选项卡(与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本身。 我怎样才能做到这一点?