为什么ViewPager2会延迟加载页面?
我决定尝试ViewPager2的新且现已可用的稳定版本. . 我的ViewPager2有很多页面,我正在使用TabLayout给出每个页面(片段)可滚动标签标题,但是在我的视图中,我第一次加载ViewPager2时会面对延迟. 这是正常行为吗? 解决方案 我找出了导致ViewPager2加载页面的初始延迟的原因. 发生的情况是我从com.google.android.material.tabs.TabLayout和ViewPager2和ViewPager2一起使用TabLayout给出了每个页面的可滚动标签标题.但是,如果您有很多页面,这是我的情况,UI需要时间来设置每个选项卡并放入UI. 解决方案是从ViewPager2中删除TabLayout,如果您需要显示标题,请根据您的需要更改和设置为每个页面的标题页指示符. 通过在屏幕上有更多空间的ViewPager2向用户显示其内容,从而最终会获得更干净的UI. . 我注意到的另一件事是,如果您想充
0 2023-05-24
编程技术问答社区
安卓ViewPager和TabLayout的工作速度不快
有TabLayout和ViewPager的嵌套片段.每个片段都有其中的ListView,因此他们聚集在一起,现在我会遇到一个对应用程序缓慢处理的问题.我尝试了一些解决方案,例如凌空图书馆,但对我不起作用.有关更多信息,我也会发布我的代码,所以请指导我做得最好. Maintabfragment.java public class MainTabFragment extends Fragment { public static int position_child_tab = 0, three_childs_tab_position = 0; static int count = -1; int position_tab = 0; Bundle args; MyTabLayout myTabLayout; public MainTabFragment() { // Required empty public constructor } /** * Use this
在ViewPager中的安卓包裹
我在应用程序中使用ViewPager,当我在与ViewPager互动时按home button时,应用程序崩溃了,我会得到此error: 3780-3780/? E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Parcel: unable to marshal value OrdinaryFragment{42000b70 #0 id=0x7f090005 android:switcher:2131296261:0} at android.os.Parcel.writeValue(Parcel.java:1235) at android.os.Parcel.writeList(Parcel.java:622) at android.os.Parcel.writeValue(Parcel.java:1195) at android.os.Parcel.wri
0 2023-05-19
编程技术问答社区
解除调用:android.support.v4.view.ViewPager$SavedState时出现ClassNotFoundException。
我在Android Crash报告中看到以下错误: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: android.support.v4.view.ViewPager$SavedState at android.os.Parcel.readParcelable(Parcel.java:1971) at android.os.Parcel.readValue(Parcel.java:1859) at android.os.Parcel.readSparseArrayInternal(Parcel.java:2128) at android.os.Parcel.readSparseArray(Parcel.java:1581) at android.os.Parcel.readValue(Parcel.java:1916) at android.os.Parcel.readMap
4 2023-05-19
编程技术问答社区
安卓视差效果和查看页面
我正在尝试在应用程序中实现视差效应. 我有一个实现OnPageChangeListener接口并倾听ViewPager滚动事件的FragmentActivity. 为了在我的XML中实现此效果,我在所有其他视图背后都有A LinearLayout,然后将其移动到onPageScrolled回调中. 如果我简单地滑动一切都可以,那么效果就可以了,背景位置会改变.但是,当我的手指离开屏幕时,背景是在他的原始位置上重新绘制的(即使我在新页面中). 我不明白为什么会发生这种情况. 在这里,我的FragmentActivity的代码: public class MainActivity extends FragmentActivity implements OnPageChangeListener { // DEFINE THE PAGEADAPTER private ViewPager viewPager; private com.angtrim.ecomilano.PagerAd
4 2023-05-19
编程技术问答社区
安卓系统ViewPager的视差效果
我试图在滑过片段时模仿视差效果,我已经读到了关于beginfakedrag和fakedragby的信息,但是说实话,即使这是解决我问题的最佳方法,我也不知道. 任何人都对ViewPager做了类似的事情,或者有一个暗示我该如何处理? 谢谢 解决方案 这个问题有点老了,但是当我试图做到这一点时,我发现了它... 我实现了自己的解决方案,基本上扩展了ViewPager和覆盖onDraw. 您可以使用一个简单的示例找到所有代码在这里 其他解决方案 在不使用自定义库的情况下进行此操作的一种简单方法是实现ViewPager.PageTransformer 我创建了我的布局以使用相同的id为其背景元素.对于我的示例,所有背景图像将使用ID background
0 2023-05-19
编程技术问答社区
在安卓系统中,一个有多个文本视图和图片视图的内容如何分成几个页面,而不是使用滚动视图?
我正在为Android实施EPUB读取器.我已经成功阅读了EPUB文件,并将内容获取到动态文本视图和ImageViews. 因此,内容实际上是由多个文本视图和图像视图组成的. 目前,我已经使用了ScrollView来阅读这本书.现在,我需要将整个内容分解到页面上(页面的内容应基于屏幕大小). 为此,我正在考虑使用ViewPager.因此,它可以轻松地在页面之间滑动.但是,如果您有其他解决方案,除此之外,我将有很大的帮助. 任何人可以帮助实现这一目标吗? 谢谢. 解决方案 这是您开始的东西,以下组件测量文本以填充屏幕,addText方法返回不安装的文本. 与ImageView结合使用添加了更复杂的测量高度,因此我只是与文本一起使用.您还可以调整删除多少个字符以更快地进行迭代的值,并检查可能性是否可以通过线计数与线路高度结合使用更有效地完成. . 请注意,该组件需要一个长字符串,它将将其缩为下一页剩下的内容. public class Re
0 2023-05-16
编程技术问答社区
如何有意地用viewpager重新创建片段?
我正在使用一些片段的ViewPager.我想达到下一个小效果:如果我滑入ViewPager的第一页(因此页面的索引等于0),我想重新创建它.因此,我不希望将其从内存中提取,我想每次滑动到该页面时都会重新创建它. 我读到我需要覆盖InstantiateEtem方法,但我做不到. public class PagerAdapter1 extends FragmentPagerAdapter { private List fragments; private static final String TAG = "FragmentPagerAdapter"; private static final boolean DEBUG = false; private final FragmentManager mFragmentManager; private FragmentTransaction mCu
6 2023-05-15
编程技术问答社区
android。如何用自定义ArrayAdapters和ViewPagers节约内存
所以我有一个观点寻呼机.我为视图Pager创建一个非静态自定义fragmentPageadapter: public class CustomViewPageAdapter extends FragmentStatePagerAdapter { 适配器有4个项目(片段),我将其声明为全局变量主动脉为静态,因此: static HotFragment hotFragment; 然后我在fragmentStatePagerAdapter的GetItem()方法中返回热fragment. 然后,在我的热fragment类中,我还有另一个ViewPager以及另一个fragmentStatePagerAdapter,它也不静态:在该适配器的GetItem()方法中 return ImageDetailFragment.newInstance(arg0); ImageTaildailfragment contatins一个图像视图,该图像视图将根据arg0的
0 2023-05-15
编程技术问答社区
在ViewPager上出现OutOfMemoryError。
我正在使用带有13页的ViewPager.它是使用FragmentStatePagerAdapter进行管理的,每个页面都将250KO图像加载为背景,有时每页更多图像. 我经常会出现eutofMemoryError错误,并且正在三星Galaxy Tab 2上测试我的应用程序,所以我想我做错了什么. 是否有一种方法可以释放我在ViewPager上片段的生命周期上不使用的图像?还有其他想法吗? 预先感谢. 解决方案 在其他解决方案 将android:largeHeap设置为true对于这种问题也非常有用.
0 2023-05-15
编程技术问答社区
带有ImageView的ViewPager出现 "java.lang.OutOfMemoryError: bitmap大小超过VM预算"
我做了一个ViewPager以显示图像.当我推进一些页面时,我会收到java.lang.OutOfMemoryError: bitmap size exceeds VM budget错误. 关于此问题还有更多问题,但我没有找到解决方案(BitMap.Recycle,System.gc()等).如果您有建议或解决方案,请告诉我! PNG是628KB,478KB,587KB,132KB,139KB,149KB,585KB(crash). 如果您有其他解决方案(诸如页面之类的滚动图像),让我知道! 我的代码: package nl.ipear.vngmagazine; import android.content.Context; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Environment; import android.os.Parc
4 2023-05-15
编程技术问答社区
查看带有通用图像加载器内存不足错误的呼叫器
我不确定是否可以/可以将带有通用图像加载器的ViewPager用作诸如接口之类的画廊的替代方案,因为我在加载SD卡中加载图像并在全屏中查看它们时遇到了一个脱离内存错误模式.无论数字如何,它都可以通过网格浏览来奏效,但是在查看"视图pager"中的图像时,每个位图都会不断吞噬很多内存,并且在10张左右的图像之后,它会出现错误的内存错误. 我已经看到这里发布的几乎所有问题与使用通用图像加载器一起工作时与失误错误有关,在每个问题中,都有一个配置错误作为原因. 我不知道我是否正在使用错误的配置或什么,但是我浪费了很多时间,并且有点卡住了,任何帮助/建议都将不胜感激. 成像装载器的配置: ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()) .memoryCache(new WeakMemoryCache())
2 2023-05-15
编程技术问答社区
Outofmemeoryerror (viewpager + imageviews)
我正在ViewPager中显示150多个图像,当页面大小交叉70应用崩溃时, 所有图像都从网络上加载,我已经下来了[link]:,每当翻页达到4, 时,我都在回收它 对于70页应用程序,采用200 MB的内存. 我需要您的帮助,如何处理 我必须显示所有页面... 我还使用了runtime.getRuntime().gc(); 如果到达应用程序内存,则可以释放内存的任何方法 预先感谢 解决方案 可以在下面找到完整的解决方案,重要的行是Destrainitem方法中的线条: private class ContentPagerAdapter extends PagerAdapter { @Override public void destroyItem(View collection, int position, Object o) { View view = (View)o; ((ViewPager
6 2023-05-15
编程技术问答社区
java.lang.OutOfMemoryError。分配571401228字节失败,有16777216个空闲字节,495MB直至OOM
我的Android应用程序有错误. 我想将ViewPager用作Android Image滑块,为此,我得到了Androidimageadapter.java,但是当涉及方法时,应用程序中止应用程序中止,我不知道如何修复它. 我已经查找了失败并添加了 android:hardwareAccelerated="false" android:largeHeap="true" 我的清单仍然存在. 这是完整的错误代码: java.lang.OutOfMemoryError: Failed to allocate a 571401228 byte allocation with 16777216 free bytes and 495MB until OOM at dalvik.system.VMRuntime.newNonMovableArray(Native Method) at android.graphics.BitmapFactory.nativeDecodeAss
38 2023-05-15
编程技术问答社区
保存查看器的当前页
我在肖像模式下有一个视图.在景观模式下,我的布局完全不同.从景观中回到肖像后,我想看看ViewPager的最后一页.但是始终在屏幕上. 这是我的代码: public class MainActivity extends FragmentActivity { public static ViewPager pager=null; public static FragmentAdapter adapter; PageIndicator mIndicator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_delict); if(getResources().getConfigu
6 2023-05-14
编程技术问答社区
带有ViewPager的FragmentActivity。方向改变时崩溃
我在碎片性中使用了ViewPager.当方向更改时,我正在崩溃. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); context = this; loadInitialData(); setActionBar(); initializeUiComponents(); } private void initializeUiComponents() { // Set up the ViewPager with the sections adapter. mViewPager = (ViewPager) findViewById(R.id.pager); } 我的数据来自数据库,我必须
0 2023-05-14
编程技术问答社区
将视图渲染到视图页面-优化的方式
在我的应用程序中,我正在使用以下方式将视图渲染/生成视图Pager.是的,它可以正常工作. 注意: - 但是在这里我已经看到,这种方法必须在Android资源(与设备相关联)方面付出了很多努力.我想找出任何优化的方法来执行此操作.有吗?建议我或以上是好的? class MyActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layoutView); LinearLayout pageFirst = getPageFisrt(context); LinearLayout pageSecond = getPag
0 2023-05-12
编程技术问答社区
SwipeRefreshLayout和垂直ViewPager的触摸问题
我有一个具有自定义SwipereFreshlayout的活动和一个垂直滑动的垂直视图器. (基本上,可以通过使用滑动来刷新来提及一张卡片). 现在,当我尝试刷垂直Viewpager SwipeRefreshLayout时,处理触摸事件并刷新布局,并且视图pager的页面不会移动. 我尝试过的两件事,但没有运气: 启用仅在用户从用户开始时才能刷新布局 工具栏. MotionEvent.ACTION_DOWN事件getY()提供工具栏的y 协调. 如果ViewPager是第一个接受触摸事件然后 不要将其委派给SwipeRefreshLayout. 活动的布局文件看起来像这样.
0 2023-05-08
编程技术问答社区
onTouchListener用于ViewPager2
我最近将应用程序中的ViewPager更改为ViewPager2.我已经将OnTouchListener设置为ViewPager对象以检测手势(onfling和onlongpress),因此: mViewPager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { mDetector.onTouchEvent(motionEvent); // use the custom gesture detector to detect onFling and onLongPress touch events. return true; } }); ViewPager的OnTouchListener在Refactor到ViewPager2之前工作正
24 2023-05-08
编程技术问答社区
ViewPager拦截所有x轴的onTouch事件。如何停用?
范围 有两个片段的视图器.这些片段之一具有布局巫婆来聆听x轴的onTouch更改. 问题 布局几乎没有得到所有动作.沿X轴触摸和滑动时的移动事件. 看来ViewPager有一个onintercepttouchevent,它返回true. 问题 覆盖ViewPager的行为和我的布局一起起作用是真的吗?因此,完美的情况是布局拦截它上面的所有OnTouch事件,并且ViewPager管理其余的OnTouch事件.谢谢! 解决方案 您是对的,我相信每个滚动容器拦截触摸事件,但您可以防止它.您可以在布局上放一个触摸听众: public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_MOVE: pager.requestDisallowInterceptTouchEvent
0 2023-05-08
编程技术问答社区