Articles of android viewpager

DialogFragment中的ViewPager + FragmentPagerAdapter获取“IllegalArgumentException:No view found …”

我试图显示一个FragmentDialog(创build并显示为一个对话框不添加为视图层次结构中的内容),其中有一个ViewPager的内容是由FragmentPagerAdapter(提供的碎片组成的图像)​​给出的。 当从FragmentActivity中显示ViewPager + FragmentPagerAdapter时,代码工作正常,但从FragmentDialog中获取以下exception: “IllegalArgumentException:为片段SimpleFragment没有发现ID为0x7f040077 …” 这是我的代码: SherlockFragmentActivity带有一个button来创build和显示对话框。 public class BorrameActivity extends SherlockFragmentActivity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.one_act); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { showTheDialog(); }}); } private void showTheDialog(){ AchGalleryDialog newFragment = AchGalleryDialog.newInstance(achs); newFragment.show(getSupportFragmentManager(), "dialog"); } FragmentDialog: public class AchGalleryDialog extends DialogFragment{ public AchGalleryDialog(){ […]

没有样式ViewPagerIndicator与SherlockActionBar结合使用

我试图用SherlockActionBar实现ViewPagerIndicator。 它的作品:我可以滑动片段,但风格不起作用! 它看起来像这样: 相关主题: https : //github.com/JakeWharton/Android-ViewPagerIndicator/issues/66 我知道发生了什么问题:在VPI的示例中,页面样式在AndroidManifest.xml中由(例如) <activity android:name=".SampleTabsDefault" android:theme="@style/Theme.PageIndicatorDefaults"> </activity> 但是,当我将android:theme元素添加到我自己的Manifest.xml中时,出现以下exception: 03-16 11:06:24.400: E/AndroidRuntime(483): Caused by: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative. 我也尝试将所有的样式信息复制到styles.xml,但是这也不起作用。 你能告诉我如何给VPI设置一个风格吗? 谢谢! 编辑:现在我已经添加 <activity android:name=".SampleTabsDefault" android:theme="@style/StyledIndicators"> </activity> 到我的Manifest.xml 以及styles.xml中的以下样式 <style name="Theme.BataApp" parent="Theme.Sherlock.Light.DarkActionBar"> <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item> </style> <style name="StyledIndicators" parent="Theme.BataApp"> <item name="vpiTitlePageIndicatorStyle">@style/Widget.TitlePageIndicator</item> <item name="vpiTabPageIndicatorStyle">@style/Widget.TabPageIndicator</item> <item name="vpiTabTextStyle">@style/Widget.TabPageIndicator.Text</item> […]

CardView layout_margin无效

我正在玩新的CardView,但利润似乎并没有被应用。 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:layout_marginLeft="18dp" android:layout_marginRight="18dp" card_view:cardCornerRadius="4dp" card_view:cardBackgroundColor="#FFA" card_view:layout_margind="4dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/info_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> </LinearLayout> </android.support.v7.widget.CardView> 顺便说一句,我用它在一个ViewPager中的片段。 即使我在CardView上使用android:layout_marginLeft =“18dp”和android:layout_marginRight =“18dp”,该卡也会扩展整个屏幕宽度(match_parent)。 任何想法我可能做错了什么?

在PopupWindow(或DialogFragment)中带有碎片的ViewPager – 错误没有为碎片的idfind视图

我用下面的代码创build了一个FragmentActivity public class Activity_principal1 extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_principal1); List<Fragment> fragments = getFragments(); AcoesMuscularesAdapter ama = new AcoesMuscularesAdapter(getSupportFragmentManager(), fragments); ViewPager vp_contentAcoesMusculares_SequenciaExercicios = (ViewPager) findViewById(R.id.vp_contentAcoesMusculares_SequenciaExercicios); vp_contentAcoesMusculares_SequenciaExercicios.setAdapter(ama); } private List<Fragment> getFragments(){ List<Fragment> fList = new ArrayList<Fragment>(); fList.add(FragmentAcoesMusculares.newInstance("Fragment 1",1)); fList.add(FragmentAcoesMusculares.newInstance("Fragment 2",2)); fList.add(FragmentAcoesMusculares.newInstance("Fragment 3",3)); return fList; } } 这是我的XML <?xml version="1.0" encoding="utf-8"?> <RelativeLayout […]

查看寻呼机和片段生命周期

我有一个ViewPager一次加载三个页面。 如果我从页面1滑动到页面2然后滑动到3,则第一页(片段)进入onPause() 。 然后,如果我滑动到第二页,第一页到达onResume()即使页1仍然是不可见的用户。 所以,我的问题是:如何区分代码中的第一个和第二个页面? 例如,如果我必须在片段可见时运行一段代码,那么这是如何完成的?

ViewPager FragmentPagerAdapter空指针

我通过使用Android 支持包中的ViewPager得到了这个错误。 从ViewPager教程的水平视图滑动 06-19 13:07:25.950: E/AndroidRuntime(16382): FATAL EXCEPTION: main 06-19 13:07:25.950: E/AndroidRuntime(16382): java.lang.NullPointerException 06-19 13:07:25.950: E/AndroidRuntime(16382): at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:347) 06-19 13:07:25.950: E/AndroidRuntime(16382): at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:342) 06-19 13:07:25.950: E/AndroidRuntime(16382): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:97) 06-19 13:07:25.950: E/AndroidRuntime(16382): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649) 06-19 13:07:25.950: E/AndroidRuntime(16382): at android.support.v4.view.ViewPager.populate(ViewPager.java:783) 06-19 13:07:25.950: E/AndroidRuntime(16382): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016) 06-19 13:07:25.950: E/AndroidRuntime(16382): at android.view.View.measure(View.java:12728) 06-19 13:07:25.950: E/AndroidRuntime(16382): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:594) 06-19 13:07:25.950: […]

如何实现PagerAdapter的查看回收机制?

我有一个寻呼机适配器,假设膨胀表示日历的复杂视图。 每年的日历膨胀大约需要350毫秒。 为了提高性能,我想实现存在于回收视图的ListView数组适配器( getView() convertView参数)中的机制。 这是我的当前getView()从适配器。 @Override protected View getView(VerticalViewPager pager, final DateTileGrid currentDataItem, int position) { mInflater = LayoutInflater.from(pager.getContext()); // This is were i would like to understand weather is should use a recycled view or create a new one. View datesGridView = mInflater.inflate(R.layout.fragment_dates_grid_page, pager, false); DateTileGridView datesGrid = (DateTileGridView) datesGridView.findViewById(R.id.datesGridMainGrid); TextView yearTitle = […]

Android:ViewFlipper或ViewPager – 哪个更好?

我陷入了一个阶段。 我总共有20到25个应该像ViewPager一样animation的图像。 现在所有的图像我有onClick()事件,我不知道我应该使用ViewPager或ViewFlipper 。 我可以实现这两个东西,这里没有问题。 我想要什么:我只是想要一个build议,根据我的问题,这将是最好的select, ViewFlipper或ViewPager ? 我所search的内容:我已经通过了StackOverflow的不同链接,即如何提高ViewFlipper / ViewAnimator和ViewFlipper与碎片的性能 ,但我找不到我想要的东西。 我曾与ViewPager有所合作,但当时只有3或4个Fragments我必须pipe理。 如果我用它来解决这个问题,这次我必须pipe理25个Fragments 。 所以我想知道是否有更好的解决scheme。 我也对ViewFliper做了一些研发,知道它只有一个Activity我不得不pipe理,但它没有ViewPager的animation准确性。 请build议我是否应该去ViewPager或ViewFlipper ? 提前致谢。

只有在PagerSlidingTabStrip中单击其选项卡时才能加载片段数据

我在我的项目中使用PagerSlidingTabStrip ,并显示片段中的数据。 它是一个很棒的图书馆,效果很好。 每个片段由一个从Web服务加载的学者讲座组成。 访问Web服务的代码位于Fragment的onCreateView方法中。 目前所有片段的数据在被添加到ViewPager的同时被加载。 我想知道是否有任何方式加载碎片的数据只有当用户点击/滑动到特定的选项卡。 并非一次一切。 目前的代码是非常标准的,我从提供的例子[android解决scheme]中获得帮助。 1 寻呼机适配器如下: public class ScholarDetailPagerAdapter extends FragmentPagerAdapter { private final String[] TITLES = { "Scholar Info", "Lectures"}; Scholar _scholar; public ScholarDetailPagerAdapter(FragmentManager fm, Scholar scholar) { super(fm); _scholar = scholar; } @Override public CharSequence getPageTitle(int position) { return TITLES[position]; } @Override public Fragment getItem(int arg0) { if(arg0 […]

TabLayout与viewpager不平滑滚动

编辑 我已经按照这些教程来解决这个问题。 http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/ https://guides.codepath.com/android/google-play-style-tabs-using-tablayout http:/ /www.voidynullness.net/blog/2015/08/16/android-tablayout-design-support-library-tutorial/ 但是,在尝试几种解决scheme之后,这个问题依然存在。 这里是演示我面临的问题。自从我陷入这个问题以来,我已经有几个星期了。 链接演示。 我用来testing的设备是Nexus 4和Nexus 5。 带有ViewPager不能平滑滚动。 我需要滑动两次才能在下次点击时移动。 我浏览过网页,但找不到任何解决scheme。 我正在使用最新的支持devise库。 这是gradle文件 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.softoven.ultron" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: […]