Articles of android viewpager

FrameLayout.onMeasure()中的NullPointerException

编辑:我创build了一个Github项目,崩溃的方式和我的应用程序完全相同。 你可以在这里find它 编辑:正如我debugging了这一点,并尝试各种更改,我意识到我张贴的原始代码并不真正相关,所以我删除了它: 我有一个Activity ,可以切换3个不同的Fragment之间,当用户按下3个IconButton的一个,我已经插入到自定义布局的ActionBar中,就像在各种模式之间切换: 当我第一次启动应用程序(卸载它),我默认为全球模式。 Globe模式在ViewPager有几个片段,大多数片段是android.support.v4.app.ListFragment子类。 我在主Activity的onCreate方法中创build了所有8个选项卡。 这按预期工作,一切正常加载。 当我进入“个人档案”模式(通过点击脸部图标button),我可以login到应用程序,并看到我的个人资料。 这也按预期工作,一切正常加载。 当我再次从Android Studio 推送APK时 ,由于我现在已经login(已保存的首选项),因此默认为“好友进纸”模式(双手持握)。 我可以切换模式到configuration文件,一切都按预期工作,但是当我切换到地球模式时,它在Android代码崩溃: 08-14 14:43:22.744 28804-29323/com.trover E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.trover, PID: 28804 java.lang.NullPointerException at android.widget.FrameLayout.onMeasure(FrameLayout.java:309) at android.view.View.measure(View.java:16497) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327) at android.view.View.measure(View.java:16497) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) at android.view.View.measure(View.java:16497) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1912) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996) at […]

Android TabPage Indicator内容包装问题

我遇到过ViewPager的另一个问题,现在我无法用我目前的知识来解决这个问题。 我有TabPageIndicator与ViewPager和每个选项卡上,我正在显示文本。 这是简单的textView: <?xml version="1.0" encoding="utf-8"?> <view xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" class="viewpagerindicator.TabPageIndicator$TabView" > <TextView android:id="@+id/vpi_tab_text" android:layout_width="fill_parent" android:layout_height="fill_parent" android:singleLine="true" android:ellipsize="marquee" android:gravity="center" android:paddingBottom="10dip" android:paddingLeft="8dip" android:paddingRight="8dip" android:paddingTop="10dip" android:textColor="@drawable/vpi_tab_text_color" android:typeface="serif" /> </view> 我希望选项卡中的文本始终是单行,并且始终是整个文本,而不是椭圆化,不打包,不超过1行。 用户需要能够读取整个… 但是我不能这样做,我尝试了不同的选项,但仍然遇到一些问题 – 文本不仅仅是一行,而且只显示第一行,或者只显示一部分文本。 你有类似的经历吗? 任何帮助表示赞赏 编辑一: 我相信问题在这里: @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { final int widthMode = MeasureSpec.getMode(widthMeasureSpec); final boolean lockedExpanded = widthMode == […]

我怎样才能实现水平滑动不使用支持库?

如果我不需要授予对老版本android的支持,并且只能使用API​​ 17,那么是否有另一种方法来实现广告的水平滑动(如在Gmail中)而不使用viewpager,fragmentactivities(新的API已经有片段)。 ..)等摆脱支持库? 所有我发现的水平滑动教程显示如何使用支持库和FragmentActivities。 否则,如果我不能使用他们的本地类和方法,新API的优点是什么?

如何在RecyclerView中保留ViewPager状态?

我的RecyclerView包含许多ViewPagers。 每个ViewPager内的页面数量是不变的(2)。 我使用PagerAdapter。 当我滚动我的RecyclerView,ViewPagers失去了他们的状态,并重置到第1页。 我想知道如何保留每个ViewPager的最后select的页面。 例如:1)我滚动到页面2在我的第一个ViewPager 2)我滚动RecyclerView到底部,我的第一个ViewPager出屏幕。 3)我滚动到ViewPager的顶部,所以我的第一个ViewPager再次加载。 4)我的第一个ViewPager设置为第一页,而不是页面2,我最后滚动到。 在RecyclerView中有n个ViewPagers,我想保留所有的状态,不pipeRecyclerView是否重装。 如何解决这个逻辑?

深度寻呼变压器就像SnapChat一样

我试图与DepthPageTransformer一样实施ViewPager就像Snapchat应用程序。 在SnapChat应用程序中,有一个摄像头屏幕始终在ViewPager中心,从左或右滑动将其他片段带到摄像头屏幕上。 我从这个链接find了DepthPageTransformer代码。 但是这个演示的问题在于它从后面带来了所有的下一个屏幕视图。 就像SnapChat我有一个相机屏幕在中心,两个屏幕在左上方,两个屏幕从右上angular在相机屏幕上。 那么,我该如何创build一个PageTransformer ,它会在我的中心屏幕的顶部(这是Camera)的左侧或右侧带来碎片?

带指示器的ViewPager,没有Android的支持库

现在,我正在使用ViewPagerIndicator在我的程序中使用指示器进行轻扫,并且它像魅力一样工作。 但是,由于Google正在向Fragments的方向推进越来越多,而不使用Android支持库,并且PreferenceFragments在支持库中不可用,所以我想知道是否有类似于使用标准Android库的ViewPagerIndicator。

在片段之间滑动时消失的操作栏button

我有一个应用程序在一个操作栏中的多个选项卡,每个选项卡有一个不同的选项菜单图标集,显示在操作栏。 有些标签有两个图标,有些没有。 问题是,当我在屏幕之间滑动时,单个屏幕的button可能会显示或不显示。 即在一个应该有两个图标的屏幕上,操作栏中将没有图标! 然而,当我点击标签时,屏幕总是显示正确的图标。 我试图在debugging器中分析问题。 我确定FragmentPagerAdapter正确地为新select的Fragment调用了setMenuVisibility(true) ,而其他片段则通过setMenuVisibility(false)调用。 我无法findbutton的外观/消失的确切模式。 我可以在两个屏幕之间左右滑动,每个屏幕有两个不同的button。 这个问题会在1到20次刷卡后发生。 通过用一个图标滑动到屏幕,然后回到具有两个图标的屏幕,消失似乎变得更加严重。 我已经尝试将调用添加到Activity.invalidateOptionsMenu()但它似乎没有影响。 例如,我将这个调用添加到我的TabAdapter的onPageScrollStateChanged(),这是在滑动animation完成后调用的。 我也试过把这个添加到碎片的onResume()或TabAdapter.onTabSelected()完成后,无济于事。 我使用的ActionBarSherlock 4.1.0(和我已经取代了最新的android-support-v4.jar由于不同的问题)。 我的活动扩展SherlockFragmentActivity并简单地实例化一个ViewPager 。 我重写了ViewPager适配器的FragmentPagerAdapter (遵循ViewPager Android文档上的标准示例)。 我的手机运行Android 2.3.5。

将寻呼机视为列表视图行项目

我有一个20行的列表视图,我想设置一个视图寻呼机作为列表视图中的每一行。 由于列表视图行中的项目可能是一个或多个,我想使用视图寻呼机显示列表视图行项目。 为此,我使用下面的代码: 要在列表视图行中显示的自定义布局(作为分页器项目) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/inner_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="horizontal" > <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="6.0dip" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:gravity="center_vertical" android:text="Example Value" android:textAppearance="?android:textAppearanceMedium" /> 主列表视图自定义行项目具有查看传呼机 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <android.support.v4.view.ViewPager android:id="@+id/mypager" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout> MyPagerAdapter类 public class MyPagerAdapter extends PagerAdapter { private […]

Android:垂直viewpager中的RecyclerView

我想在一个垂直的viewpager中实现一个recyclerview。 我目前的布局如下所示 VerticalViewpager – Fragment1 – ImageView – Fragment2 – RecyclerView 如果我从Fragment1滑动到Fragment2一切正常。 我可以在回收站内上下滚动。 如果我尝试滑动/回滚到Fragment1,就会出现问题。 如果用户已经滚动到回收站视图的顶部,我想将下一个“向上”滚动事件转发到垂直viewpager。 我试图重写onInterceptTouchEvent方法,但不幸的是仍然没有成功。 有任何想法吗? 谢谢你的帮助 :)

正确插入和删除视图到浏览器

我正在用viewpager和碎片做一个adroid应用程序。 我想做一个选项来dynamic地添加或删除分页到分页器。 我有一个自定义的FragmentPagerAdapter: public class MyAdapter extends FragmentPagerAdapter implements TitleProvider{ protected final List<PageFragment> fragments; /** * @param fm * @param fragments */ public MyAdapter(FragmentManager fm, List<PageFragment> fragments) { super(fm); this.fragments = fragments; } public void addItem(PageFragment f){ fragments.add(f); notifyDataSetChanged(); } public void addItem(int pos, PageFragment f){ for(int i=0;i<fragments.size();i++){ if(i>=pos){ getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentByTag(getFragmentTag(i))).commit(); } } fragments.add(pos,f); notifyDataSetChanged(); pager.setAdapter(this); […]