问题标签 [android-viewpager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
25316 浏览

android - Android - 多个可查看项目的水平滚动

编辑:查看我自己的答案以获得简单的解决方案

重要提示赏金提供了一种明确的方式来修改 ViewPager 以满足下面概述的场景。请不要提供 Horizo​​ntalScrollView - 我需要涵盖完整的 Fragment 生命周期场景

我需要实现Fragments基于视图的水平滚动,其中一个项目位于中心,右侧/左侧的项目部分或完全可见。ViewPager不适合该任务,因为它每次都专注于显示一个项目。

为了更容易理解,下面是一个快速草图,其中项目 1、5 和 6 位于可视区域之外。并且想要使这个可查看的数字可配置,例如在纵向视图中,我将只显示 2 个(或可能只显示一个)项目。

我不想在屏幕上显示 3 个项目,只要显示中心项目就可以裁剪其他项目。在小屏幕上可以有 1 个中心项目,并且随着屏幕尺寸的增大,应该显示多个(裁剪是可以的)项目

我知道这看起来像一个画廊,但这些项目也不是简单的图像,而是Fragments每个片段中都有一个垂直滚动的列表

PS 发现@Commonsware 的这篇博文列出了 3 种不同的方法。为了我的需要,我喜欢#3

在此处输入图像描述

0 投票
9 回答
39180 浏览

android - 在片段中显示片段查看器

我有一个包含 ViewPager 的片段。ViewPager 与包含一组片段的适配器相关联。

加载父片段后,我遇到了一条IllegalStateException消息:java.lang.IllegalStateException: Recursive entry to executePendingTransactions

一些研究使我得出结论,系统无法在另一个片段中显示片段,但是似乎有一些迹象表明使用 ViewPager 完全可以做到这一点( ViewPager 中的一个错误将它与其他片段一起使用)。

事实上,如果我向我的父片段添加一个按钮,该按钮mPager.setAdapter(mAdapter)在按下时调用我的 ViewPager,则 ViewPager 会成功加载。这并不理想。

那么问题必须与片段生命周期相关。因此,我的问题是:有没有其他人找到解决这个问题的方法,如果有,如何解决?

有没有办法将 ViewPager 上的适配器设置延迟到片段事务之后?

这是我的父片段代码:

和适配器:

0 投票
1 回答
1733 浏览

android - 在列表视图行android中查看寻呼机

我可以创建一个 View Pager 并向其添加片段,使其表现得像在 Android 市场中一样。现在,我在其中一个页面中有一个列表视图。将视图寻呼机添加到列表视图行是否是个好主意。您认为它会影响主 View Pager,还是有其他更好的方法?谢谢。

0 投票
18 回答
204632 浏览

android - 替换 ViewPager 中的 Fragment

我正在尝试将 Fragment 与ViewPager使用FragmentPagerAdapter. 我想要实现的是用另一个片段替换位于 的第一页上的片段ViewPager

寻呼机由两个页面组成。第一个是FirstPagerFragment,第二个是SecondPagerFragment。单击第一页的按钮。我想FirstPagerFragment用 NextFragment 替换。

下面是我的代码。

...这里是 xml 文件

fragment_pager.xml

first.xml

现在的问题...我应该使用哪个 ID

?

如果我使用R.id.first_fragment_root_id,则替换有效,但 Hierarchy Viewer 显示出奇怪的行为,如下所示。

一开始的情况是

更换后的情况是

如您所见,有问题,我希望在替换片段后找到与第一张图片相同的状态。

0 投票
2 回答
28335 浏览

android - 上一页和下一页可见的Android ViewPager?

我目前正在建立一个水平的视频画廊。

我想做这样的事情,只有一个视频居中,上一个和下一个视频的一部分: 在此处输入图像描述

我首先选择了画廊,但它的局限性让我寻找别的东西。我想显示一个页面指示器,使用图库很难实现。

第二种选择是从 Android 兼容性库中选择ViewPager 。我找到了一种在其上实现页面指示器的方法。但是现在,如何部分显示左右页面?

0 投票
2 回答
1886 浏览

android - 无法使用 viewpager 让 android 软键盘出现/隐藏

在我的应用程序中,我使用 viewPager 给我很好的滑动视图。我希望键盘隐藏在其中的两个页面中,但始终显示在一页上,我有一个文本框。

我尝试了各种方法来显示键盘,但它不起作用。我想我一定是在错误的地方调用了显示键盘代码。

任何帮助都会很棒,因为它让我发疯!

0 投票
3 回答
12704 浏览

android - Android - problems using FragmentActivity + Loader to update FragmentStatePagerAdapter

I'm trying to use FragmentActivity with ViewPager to display dynamic list of Fragments. There are plenty of examples on how to do a static version of it. My problem is that the list I display needs to be loaded dynamically and also can change based on user input (add/delete). I'm trying to use customized android.support.v4.content.Loader to load set of data that I can use to build my list.

Everything goes fine in my setup until I get to the point when I want to update the adapter and issue FragmentStatePagerAdapter#notifyDataSetChanged() call at which point this code is executed (from FragmentStatePagerAdapter)

The transaction commit fails with this message:

java.lang.IllegalStateException: Can not perform this action inside of onLoadFinished

because within FragmentManagerImpl this code is executed:

It turns out that mNoTransactionsBecause value is not null and it is set in LoaderManagerImpl.LoaderInfo when the result is returned back to onLoadFinished

I was looking at the various variables trying to somehow change tramsaction.commit() to transaction.commitAllowingStateLoss() but everything related to transaction seems to be private or at least package-protected.

Can someone give me a general idea if I can do what I need to do (and how)?

Just to note that my code works fine if instead of using Loader I run the loading ops in AsyncTask

0 投票
14 回答
38479 浏览

android - 使用 FragmentPagerAdapter 的 ViewPager 中的片段在第二次查看时为空白

我有一个片段界面,底部带有选项卡,可在主视图中打开不同的片段。

我有一个特定的片段,它是一个项目列表。如果用户选择此列表中的一个项目,则会打开另一个片段,其中包含一个视图分页器,该页面在前一个片段的列表中的所有项目之间水平滚动。这很好用。

viewpager 使用 FragmentPagerAdapter 来显示项目。

当用户在列表中选择一个项目,查看它,然后点击选项卡栏上的按钮返回列表,然后选择另一个项目时,就会出现问题。第二次选择一个项目时,会出现一个空白屏幕而不是查看器。发生这种情况时,我的 LogCat 中没有收到任何错误。

为什么 viewpager 只在第一次出现?

FragmentPagerAdapter:

PagerFragment:

0 投票
2 回答
2946 浏览

android - 如何在我的浏览器页面之一中访问我的按钮?

我是这个android和java的新手。

我的 viewpager 现在可以滑动我所有的 xml 布局,但我不知道如何访问其中的项目。

我尝试使用Button mybutton = (Button) findViewById (R.layout.result),然后onClickListener在 mybutton 中设置,但每次运行时它都被迫关闭。

这是我的代码:

0 投票
10 回答
116938 浏览

android - 更改 ViewPager 以启用无限页面滚动

Jon Willis发布了关于如何使用他的代码启用无限滚动的帖子。

在那里,他说他ViewPager在 android 支持库中对类进行了一些更改。进行了哪些更改,如何通过更改“重新编译”库ViewPager