包裹在 Horizo​​ntalScrollView 中的 TabWidget 不随 ViewPager 滚动

2023-11-29

我必须使用TabHost代替ActionBarTabs为了使它们可以滚动,我已经包裹了我的TabWidget in a HorizontalScrollView,但是HorizontalScrollView不按照以下方式自行滚动ViewPager。我尝试过以几种不同的方式使用scrollTo和fullScroll,但它没有改变任何东西。我需要做什么才能使其正常工作?

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <HorizontalScrollView
        android:id="@id/horizontalScrollView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="@null" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" />
    </HorizontalScrollView>

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="0" />

    <android.support.v4.view.ViewPager
        android:id="@id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

</LinearLayout>

        @Override
    public void onTabChanged(String tabId) {
        int position = mTabHost.getCurrentTab();
        mViewPager.setCurrentItem(position);
        mHorizontalScrollView.scrollTo(position, 0);
    }

    @Override
    public void onPageScrolled(int position, float positionOffset,
            int positionOffsetPixels) {
        mHorizontalScrollView.scrollTo(position, 0);
    }

当你调用时水平滚动视图会改变.refreshDrawableState()拨打电话后.scrollTo(x,y)方法。

另一件需要注意的事情是.scrollTo(x,y)滚动使得x位于屏幕的左侧。您可能需要对选项卡的坐标和水平滚动视图的宽度进行一些数学计算,以正确定位内容。你不能打电话.scrollTo(position,0)并让它按照您想要的方式工作(除非您的选项卡是 1 像素宽)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包裹在 Horizo​​ntalScrollView 中的 TabWidget 不随 ViewPager 滚动 的相关文章

随机推荐

  • Asp.Net MVC 中使用 DataTable 代替 Entity 框架

    如何在 Asp Net mvc 中使用 Datatable 而不是 Entity 框架 我指的是 asp net 网站上的本教程 http www asp net Learn mvc tutorial 21 cs aspx 我可以返回数据表
  • Java DateTimeFormatter 解析特殊字符

    我在正确使用我的格式时遇到了一些麻烦DataTimeFormatter解析日期时间String格式为 20200915095318 883 4 EDT 我有一个DateTimeFormatter模式可以产生这种格式 但不能解析相同的字符串
  • 如何初始化 VLAN 嗅探的原始套接字

    我正在尝试创建从不同 VLAN 嗅探 DHCP 提供的软件 但我的问题是我接收的数据包不包含 VLAN 标记 我正在使用原始套接字 并且尝试启用混杂模式 但无济于事 问题是如何指示内核保持数据包中的所有数据完好无损 使用wireshark时
  • 清理(​​单选按钮、复选框和<选项>)

    在 PHP 中 是否必须清理这些类型的输入 radio纽扣 checkboxes and
  • Vec> 的可变迭代器

    我正在尝试为类型向量创建一个可变迭代器 Vec
  • AngularJS UI Router:由于可选参数而导致路由冲突

    我的 AngularJS 应用程序中有几条路由 我使用 UI Router 在我的站点中的状态 页面之间进行路由 我遇到的一个问题是 由于我拥有 需要网站主页的可选参数 因此我的路线存在冲突 我有一个主页的路线 example com 或多
  • 解析一个'.'链式标识符列表,带有 qi::lexeme 并防止空格跳过

    我目前正在开发一个基于 Spirit 的表达式解析器 它应该允许最终 在遥远的未来 表达式 例如 a b c 10 20 x y z a b c a b e c d e 4 e f a b 23 d 23 b e a b c x y 成员访
  • Sequelize:原始数据和模型之间的映射

    我在使用原始查询从 MySQL 数据库检索数据时遇到一些问题 问题在于原始数据和sequelize 中定义的模型实例之间的映射 特别是那些在数据库中具有下划线名称并在模型中具有驼峰式名称的字段 我这样定义 Store 模型 sequeliz
  • 用于验证字符串中括号的 JS 函数

    伙计们 我想问你如何创建一个函数来检查字符串中的括号是否正确放置 例如 a b 4 2 c 5 我必须检查括号 我尝试了一些方法 但似乎不起作用 抱歉 我是 javascript 的新手 function checkBrackets str
  • 如何将文件从独立存储复制到下载文件夹?

    我正在尝试将数据库文件从独立存储复制到下载文件夹 或用户可以访问的任何文件夹 目前我的数据库存储在 data user 0 com companyname appname files Databases MyDatabase db 我尝试使
  • 无法删除 JTextPane 中 html 内容的额外行距

    我无法将 Java 中的行挤在一起JTextPane如果我将内容类型设置为text html 我希望它们像内容类型一样紧密地结合在一起text plain 默认值 The line height top margin CSS 属性似乎没有帮
  • PHP 如何将对象数组与数组数组合并

    首先 抱歉冗长的解释 我在 PHP 中有两个数组 第一个数组是对象数组 第二个数组是数组的数组 基本上 我想循环遍历并将对象与其匹配的数组合并 然后返回合并的对象 请参阅以下内容print r 对象结构数组 Array 0 gt stdCl
  • 在 Azure Blob 存储上上传大文件时“流太长”

    我尝试将大文件 4Gb 上传到 Azure Blob 存储 但失败 根据这篇文章 https learn microsoft com en us azure storage storage dotnet how to use blobs 这
  • Excel/VBA - 如果网络连接不存在则中止脚本

    是否有任何 VBA 代码可以查找当前的互联网连接 我有一个将在计时器上运行的代码 此代码将打开本地网络共享驱动器上的文件 我正在寻找某种类型的 On Error Goto ErrorMessage 代码 如果它在网络未连接时尝试打开文件 您
  • Marshal (Ruby) 管道:将序列化对象发送到子进程

    我需要使用 Marshal 序列化 Ruby 中的对象 并通过管道将其发送到子进程 我怎样才能做到这一点 我的代码如下所示 我的问题在评论中 data Marshal dump data call sub process ruby r a
  • SQL 作业存在事务日志问题

    我有一个仅执行存储过程的 SQL 作业 每天早上当作业尝试运行时 我都会收到以下错误 当前事务无法提交 并且无法支持写入日志文件的操作 当我继续尝试重新启动作业时 它总是给我同样的错误 但是 如果我只是执行存储过程而不使用作业 它就可以正常
  • 如何在 Rails 4 中格式化 db:datetime 记录中的时间和日期?

    我有一个var在我看来 返回日期和时间datetime数据库记录为 UTC 格式 输出如下所示 2014 01 21 03 13 59 UTC 我该如何格式化它 Date parse var 会给 gt Tue 21 Jan 2014在 I
  • 与 DrawText 函数冲突

    我正在开发一个多平台应用程序 在一个组件中我有一个名为 DrawText 的类方法 不幸的是 我收到一个链接器错误 仅在 Windows 上 指出此类的 DrawTextW 方法存在未解析的外部符号 我之前见过以 Text 结尾的其他方法
  • 将值从一种形式传递到另一种形式

    我有两个表单 我需要将值从 form1 textbox1 传递到 form2 variable Form1 string Ed En public string En1 get return En set En value public s
  • 包裹在 Horizo​​ntalScrollView 中的 TabWidget 不随 ViewPager 滚动

    我必须使用TabHost代替ActionBarTabs为了使它们可以滚动 我已经包裹了我的TabWidget in a HorizontalScrollView 但是HorizontalScrollView不按照以下方式自行滚动ViewPa