Articles of android viewpager

dynamic设置查看传呼机高度

我有视图寻呼机作为列表项行,我设置数据到寻呼机的适配器显示在列表视图。这里是我的代码: Pager_Item布局 <?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" /> </LinearLayout> 列表视图行项目 <?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:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/mypager" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> ListView GetView ViewHolder holder; if(rowView==null){ holder = new ViewHolder(); […]

避免从Android回收位图

我有两个asynchronous任务之一,其中一个下载图像,另一个添加模糊效果,但我的问题是,在onPostExecutecallback的下载任务我想把位图在一个ImageView中,然后传递给第二个任务运用模糊效果,但有时我得到 trying to use a recycled bitmap 我已经search了很多关于这个问题,但我没有find一个明确的解决scheme,以避免这个问题,特别是我使用这个图像在一个视图的分页器这是我的代码 protected void onPostExecute(Bitmap result) { Bitmap bitmap=result; bmImage.setImageBitmap(bitmap); if(bitmap!=null && !bitmap.isRecycled()){ Bitmap bb=bitmap; new blurTask().execute(bb);} } 这是我的完整的片段代码 public class ScreenSlidePageFragment extends Fragment { int page; String img; // ImageView blured; String[] checkblur; int size; Boolean onCreateViewCalled = false; ImageView blur; ImageView imageView; public static ScreenSlidePageFragment newInstance(int page, […]

如何使FAB避免在ViewPager中移动,但是成为片段中的一部分?

背景 根据材料devise指南( 这里 ),如果您使用一个具有FAB(浮动操作button)的ViewPager作为片段,FAB不应该作为片段的一部分移动,而是消失或被另一个replace,或者以其他方式animation。 总之,而不是这个: https://material-design.storage.googleapis.com/publish/material_v_4/material_ext_publish/0B6Okdz75tqQsNVRkV3FZMktvMWc/components-buttons-fab-behavior_06_xhdpi_009.webm 你应该做这个: https://material-design.storage.googleapis.com/publish/material_v_4/material_ext_publish/0B6Okdz75tqQsVlhxNGJCNTEzNFU/components-buttons-fab-behavior_04_xhdpi_009.webm 问题 我没有看到任何示例或教程是什么是最好的方式来执行此操作。 我的意思是,在ViewPager中为每个片段(或其中的一些片段)设置一个FAB,而每个片段都将由其片段(逻辑及其外观)控制,但FAB在滑动时不会作为片段的一部分真正移动在ViewPager中的片段之间。 即使作为示例应用程序,我也不会在任何地方看到此行为。 联系人应用程序对于这两个片段都具有相同的FAB,并且拨号程序正在移动FAB。 甚至有使用不良行为的应用程序(如Solid-Explorer)。 在YouTube上,有一个FAB(在“帐户”片段),但它在标题上,所以它可能会在那里。 这个问题 你应该如何执行正确的行为? 你真的把FAB作为活动的一部分而不是碎片吗? 有没有关于这个的教程和/或样品? 也许,当ViewPager开始滚动时,我可以分离FAB,并将其附加到活动,在滚动的同时生成animation,滚动完成后,我可以隐藏它并显示另一个片段?

Viewpager溢出协调器布局内的屏幕

我试图使用devise支持库来实现选项卡 。 问题是viewpager重叠工具栏和tablayout当我删除属性 app:layout_behavior="@string/appbar_scrolling_view_behavior" 的观点。 viewpager与工具栏和tablayout重叠 当我添加属性viewpager溢出屏幕。 viewpager溢出屏幕 我只需要viewpager占用tablayout和工具栏后留下的空间,而不是溢出屏幕… 这是我的activity_main.xml <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabGravity="fill" app:tabMode="fixed" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 这是我的fragment_1.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <TextView […]

在哪里调用getChildFragmentManager()?

问题 根据Google的文档: 您现在可以将碎片embedded到碎片中。 这对于您想要将dynamic和可重用UI组件放入本身为dynamic且可重用的UI组件的各种情况很有用。 例如,如果使用ViewPager创build左右滑动并占用大部分屏幕空间的片段,则现在可以将片段插入到每个片段页面中。 要嵌套一个片段,只需在要添加片段的片段上调用getChildFragmentManager()即可。 这将返回一个FragmentManager,您可以像使用顶级活动一样使用FragmentManager来创build片段事务。 例如,下面是一些在现有的Fragment类中添加片段的代码: Fragment videoFragment = new VideoPlayerFragment(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(R.id.video_fragment, videoFragment).commit(); 所以我有(例如) TestFragment ,看起来像: public class TestFragment extends Fragment { private View mFragmentView; private FrameLayout mFrameLayout; public HistoryFragment() { super(); } @Override public View onCreateView(LayoutInflater pInflater, ViewGroup pViewGroup, Bundle pBundle) { mFragmentView = pInflater.inflate(R.layout.fragment_layout, pViewGroup, false); mFrameLayout […]

在ViewPager的Swipe上停止Exoplayer

我正在使用ViewPager与单个片段实例,其中我显示的Media文件,如图像,video,audio。 我已经实现了ExoPlayer处理Video和Audio文件。 并Glide的图像。 为了避免内存泄漏,我在ItemViewerFragment.java释放这样的ExoPlayer对象: private void releasePlayer() { if (player != null) { player.release(); player = null; trackSelector = null; simpleExoPlayerView.setPlayer(null); } } @Override public void onStart() { super.onStart(); if (player == null && currentGalleryModel != null) { initializePlayer(); } } @Override public void onResume() { super.onResume(); if (player == null && currentGalleryModel != null) […]

ViewPager里面的页边空白和页面转换器不能正确呈现

我有一个内置碎片的视图。 我使用类似于例如 PageTransformer转换中的ViewPager余量 和填充,以便您可以看到当前正在查看的片段两侧的片段的淡出边缘。 但问题是viewpager首次启动时,任何一方的碎片都不会褪色和缩小。 即我的ZoomOutPageTransformer的transformPage方法不会被调用,直到你开始滑动,所以最初的离页右/左或任何视图看起来不正确,然后“跳跃”看完一次刷卡。 任何想法,我可以使它正确呈现,所以如,如果我打电话 myViewPager.setCurrentItem(1) – 或者任何东西,页面的边将被适当的缩小。 我怎样才能让viewpager正确渲染zoomoutpagetransformer应用到“屏幕外”片段?

停止安装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) 所以我希望这不是不可能的,是吗? 请帮忙!