Articles of android viewpager

Viewpager在从互联网加载图像后不包装内容

我有一个viewpager存放由Nostra的通用图像加载器加载的图像。 这个viewpager也是列表视图的一部分。 将高度设置为wrap_content不起作用,它不显示任何内容,但是如果将其设置为特定的倾angular,则它将起作用。 我怀疑的是,viewpager可以在加载图像之前包装它的内容,所以它不显示任何东西。 这是布局: <?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:layout_marginRight="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="16dp"> <android.support.v4.view.ViewPager android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@id/viewpager" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <com.sblive.other.CirclePageIndicator android:id="@+id/titles" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginBottom="3dp" android:layout_gravity="center_horizontal|bottom" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_centerHorizontal="true"/> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/progressBar" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> </RelativeLayout> ViewPager的PagerAdapter的一部分: @Override public Object instantiateItem(ViewGroup container, int position) { inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View […]

在android中使用viewpager的SearchView与多个片段

我想实现一个ViewPager中存在多个片段的SearchView。 所有的fragemnts包含列表,我想过滤这些列表,并创build一个新的ListView,根据它属于哪个片段对结果进行分类。 但我的searchView不能使用一个片段。 这是我的主要活动: package com.codeon.directory; import android.app.SearchManager; import android.content.Context; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuInflater; import android.view.View; import com.codeon.directory.fragments.FiveFragment; import com.codeon.directory.fragments.FourFragment; import com.codeon.directory.fragments.OneFragment; import com.codeon.directory.fragments.SixFragment; import com.codeon.directory.fragments.ThreeFragment; import com.codeon.directory.fragments.TwoFragment; import java.util.ArrayList; import java.util.List; /** * Created by Nikhil […]

一个viewpager页面中有两个片段

目前,我通过FragmentPagerAdapter的每个viewpager页面使用一个片段。 但是现在我想在平板电脑的一个viewpager页面中使用两个面板视图。 例如,左侧是列表视图,右侧是gridview。 有人知道我怎么能做到这一点? 非常感谢!

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应用到“屏幕外”片段?