问题标签 [pagerslidingtabstrip]

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 投票
0 回答
205 浏览

android - 使用 PagerSlidingTabStrip 库设置默认选项卡

我正在使用这个库:PagerSlidingTabStrip

我知道我可以使用更改默认选项卡,pager.setCurrentItem(1);但第一次滑动效果不佳,它会遇到一个混蛋(因为选项卡在开始时居中)。真的,我无法用英语更好地解释,对不起。

我发现的其他方法是关于 ActionBar,我不能将它们与工具栏一起使用。

我可以使用其他方法设置默认选项卡吗?如果你编译应用程序并使用pager.setCurrentItem(1);你可以看到我想说的。

先感谢您。

0 投票
1 回答
1817 浏览

android - 使用 PagerAdapter 的 SlidingTabLayout 不滑动

我正在实现一些来自谷歌的代码(SlidingTabLayoutSlidingTabStrip,很容易在网上找到),我正在尝试使用它ViewPager来获取我的Fragment. 问题是,我PagerAdapter在我的主选项卡片段类中用作扩展,它用于我的适配器以显示选项卡中的内容的视图。我能够获得在我的片段中工作的选项卡的基本视图CuteCollectionFragment.java,但是当我单击它们时,它们通常需要单击 2 次才能突出显示新选项卡,而且您无法滑动以进入新选项卡。我的怀疑是,因为通常用于主要活动的基本代码必须放在 a 中Fragment(因为 my Navigation Drawer),所以它与Navigation Drawer已经在滑动的 my 冲突。但这只是一个猜测。

基本上,我必须使用Fragments,而不是活动。但是它们是如何冲突的,我该如何解决呢?我发现的所有在线示例都希望您使用FragmentPagerAdapter而不是PagerAdapter作为我的适配器的扩展,但我不能这样做,因为它要求您使用FragmentManager支持 v.4 的。我不能在我CuteMainActivity的(有我的导航抽屉代码的那个)中使用它,因为这样我就不能点击每个导航抽屉菜单项并转到 a Fragment,我的 switch 语句上出现红色错误Fragment fragment,上面写着我的片段必须全部扩展FragmentActivity,但不能使用导航抽屉,它们必须扩展Fragment

无论如何,天哪,这太令人困惑了。主要我只想知道两件事:

  1. 为什么我的标签不滑动(以及为什么它们需要点击 2 次)

  2. 如何连接我的内部TabsAdapter类以显示我的选项卡类(全部Fragments)。我已经准备好我的选项卡片段类/xml(例如 PhotoTab.java、VideoTab.java 等),但是如何将它们连接到它们在选项卡中的视图?

这是我的整个项目,如果你想自己跑一下看看。 ICollectCute 应用程序

我只会在下面包含Fragment我试图放入滑块选项卡代码的内容,以及它们从中提取的 xml。如果您需要更多文件,请告诉我。您可能需要的唯一其他(但可能不需要)是调用的 Google 类SlidingTabLayoutSlidingTabStrip或者可能是CuteMainActivity我放置所有 Navigation Drawer 代码的位置。但是寻找添加/错误的主要地方是我的CuteCollectionFragment班级,因为滑动选项卡需要在那里实现。

我从这个 SO post获得了我的代码。

谢谢你的帮助!

CuteCollectionFragment.java

fragment_cute_collection.xml

pager_item.xml

这是我的适配器类之一。每个选项卡都有自己的类和适配器类。这是一个(虽然还没有连接到 CuteCollectionFragment.java,因为我不知道怎么做):

PhotoTab.java

PhotoTab.java、GridViewPhotoAdapter.java的适配器

0 投票
0 回答
363 浏览

android - PagerSlidingTabStrip - RTL 中的标题文本未出现

我正在使用这个PagerSlidingTabStrip并支持英语和阿拉伯语。这一切都适用于英语语言环境,但我面临着阿拉伯语标题的问题。我也可以在阿拉伯语语言环境中从右向左滚动。

我在标签标题中的数据只包括格式化的日期字符串 (DD-MMM-YYYY),我在 UI 上看不到标题,但是当我检查我的日志时,我可以看到我的标题设置正确,因为我正在发送这个在我的要求中。

我最初的假设是样式或颜色出了问题,但事实并非如此。

如何确保文本在 UI 上可见?

这是我从 PagerSlidingTapStrip 定制的类:

更新:仅在某些设备而非所有设备上观察到此行为。

0 投票
1 回答
138 浏览

pagerslidingtabstrip - PagerSlidingTabStrip 浮动指示器

是否有选项可以使指标浮动在选定的选项卡下?我在这里描述了这个问题:https ://github.com/jpardogo/PagerSlidingTabStrip/issues/67因为我使用的是分叉库,因为它允许我设置自定义视图

0 投票
3 回答
898 浏览

android - 如何在 Play Market 中将 SlidingTabStrip 居中?

我正在使用https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabLayout.java标签类。

将它应用到我的项目后,我得到(没有居中的)标签,如图所示 但我想像在Play Market标签上一样将标签居中

我如何像在 Google Play 应用程序中一样将标签居中,谢谢?

0 投票
0 回答
878 浏览

android - 滑动标签布局在滚动之前滚动到上一个当前位置

有没有人意识到Google 提供的Sliding Tab Layout类有问题?我正在自定义使用选项卡内的自定义图标,我意识到当我滑动到最后并将滑动选项卡布局滚动到开头并选择一个项目时,它首先滚动到上一个位置(结束)然后滚动到当前位置。首先,我认为自定义它是我的错误,但随后我开始了一个干净的项目并将其与具有 20 个元素的默认文本一起使用。故障就在那里!我首先滚动到元素 14 并选择它,然后将选项卡布局滚动到开头并单击第一个元素。它首先滚动到元素 12,然后滚动到开始元素。

这是我使用的示例项目:

和xml:

0 投票
1 回答
1356 浏览

android - 在导航抽屉片段之间切换后无法在片段内添加 ListView 项

编辑:我的滑动标签片段 ATabs 似乎有问题。不使用 ATabs 片段,只使用导航抽屉在片段 A1 和 B 之间切换,一切正常!添加 ListItems 是可能的。编辑 MainActivity:

但是,一旦我使用 ATabs 片段(请参阅下面的 MainActivity)并切换到它并返回,就无法再添加 ListItems 了Log.v(LOG_TAG, "Added Item");虽然每次我按添加(+)时 Logcat 都会显示。

我不知道是什么导致了这个问题。如果 ATabs 需要成为 Activity 而不是 Fragment 或者我的 PagerAdapter 导致了问题。在我的 ATabs 类中尝试使用两种不同的 PagerAdapter:

后者甚至导致整个片段无法正确显示,并且选项卡之间的切换也不可能。


我有一个导航抽屉,它显示两个不同的片段 ATabs 和 B。片段 ATabs 包含两个滑动选项卡。每个选项卡包含另一个片段 A1 和 A2。到目前为止,A2 和 B 只是带有简单 TextView 的空片段,因此基本上相同的 A2 = B。片段 A1在应用程序启动时ListView具有一些预定义项。EditText用户可以通过在此特定片段 (A1) 的“自定义”操作栏中按添加来添加其他 EditText 项。

一般来说,片段 A1 应该具有与片段 A2 和 B 不同的操作栏项目。这似乎已经起作用了。为此,我setHasOptionsMenu(true);为每个片段添加了集合,覆盖了onCreateOptionsMenu包含menu.clear()并从资源中设置所需菜单的方法。

这已经是我的第一个问题:是否有必要在所有将使用默认主活动操作栏的片段中执行此操作?

我的主要问题是向列表视图添加其他项目:

当我在初始片段 A1(在应用程序启动时显示)和片段 A2 之间切换并返回到 ATabs 片段中的 A1 时,一切正常。我可以添加其他项目,以前添加的项目也仍然可见。但是,一旦我使用导航抽屉在片段 B 和 A1 之间切换,我就无法再添加任何项目,也看不到我之前添加的项目。稍后我将使用数据库来存储我的项目,但应该仍然可以像以前一样添加其他项目。

这里有一些屏幕可以更好地展示我的问题:

App以A1片段开头,在A1和A2之间切换,可以用+项目添加

ATabs 片段

在我使用导航抽屉在 ATabs 和 B 之间切换后,添加项目 (+) 会显示但对片段 A1 没有影响。

导航抽屉,碎片 B,无法添加

这是包含导航抽屉的 MainActivity: 我不确定onNavigationDrawerItemSelected片段之间的切换是否正确,或者我是否每次切换时都创建新片段。Android是删除前一个片段还是多次切换后导致内存溢出?而我的“第一个”A1 片段仍然“隐藏在”新创建的片段后面?我对 Android 很陌生,我真的不明白为什么在导航抽屉片段之间切换后无法添加任何项目。

带有滑动标签的片段 ATabs:

如前所述:是否有必要调用setHasOptionsMenu(true)和覆盖onCreateOptionsMenu()将使用默认主活动操作栏的内部片段?

这是使用默认主活动操作栏的片段 A2(与 B 类相同):

Fragment A1 使用自己的 a1 操作栏菜单:附加添加项。

最后是操作栏菜单: main:

一:

请让我知道是否需要任何其他代码来解决我的问题。

0 投票
2 回答
3484 浏览

android-fragments - java.lang.ClassCastException: android.widget.LinearLayout 不能转换为 android.support.v4.app.Fragment

java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.support.v4.app.Fragment当我尝试在我的应用程序中打开我的活动时,我收到此错误CuteCollection.java。奇怪的是,当我单击 logcat 错误中的第一行时,它会显示库(FragmentPagerAdapter.java:122)中文件中的一行。v4.support我无法编辑该代码,因此我的代码中必须有一些可以更改的内容。

为了进入这个活动,我单击了我HomeFragment.java的片段中的一个按钮,这是我的导航抽屉中的一个片段,它也有android.support.v4.app.Fragment扩展名,就像我的导航抽屉中的所有项目一样。

我想这可能与我的FragmentPagerAdpater. 虽然我确实将我的所有更改android.app.Fragmentandroid.support.v4.app.Fragment,但仍然是同样的错误。

更新:当我单击support.v4库中的第一行时FragmentPagerAdapter,它会显示该类并Fragment fragment = (Fragment)object;突出显示,这是此方法的一部分(尽管我无法编辑它,因为它来自 Android):

任何提示或建议?谢谢。

CuteCollectionFragment.java

fragment_cute_collection.xml

日志猫

0 投票
1 回答
360 浏览

android - 如何为 Android 的 PagerSlidingTabStrip 中的所有选项卡设置相同的宽度?

我希望每个选项卡的宽度与 PagerSlidingTabStrip 中我最宽的选项卡的宽度相同。我仍然希望标签超出屏幕宽度,以便它们可以滚动。

0 投票
2 回答
1623 浏览

android - 如何在 Android Studio 中向我的项目添加外部库?

我想在我的项目中使用pagerslidingtabstrip。因为,它不是一个 jar 文件。我怎样才能导入它?

我阅读了几篇文章,并对此进行了回答,但都不是很清楚,而且都过时或复杂。

请问我可以清楚地建议步骤吗?