【问题标题】:How to change layout on xlarge screens in ActionBarSherlock如何在 ActionBarSherlock 中更改 xlarge 屏幕上的布局
【发布时间】:2012-10-17 13:35:47
【问题描述】:

我正在构建一个使用 ActionBarSherlock 的应用程序。我需要更改它的布局,因此没有填充环绕选项卡图标。现在看起来像这样:

| tab1 |  tab2 | tab3 | t    

但我想要这样:

 |tab1|tab2|tab3|tab4|

通过更改该文件,我已经设法在正常大小的屏幕上这样做了:

 library/res/values/abs__styles.xml

但是在我的 Galaxy S3 上仍然有填充,我尝试从以下位置更改填充:

  library/res/values-xlarge/abs__dimens.xml

但没有效果。我也尝试删除它,但仍然没有任何变化。

编辑:

仅供参考,我只使用图标而不使用顶部文本。我所有的图标都在 drawable-hdpi 中,这可能是个问题吗?我不这么认为,因为它们没有被重新占用,或者只是填充出现:S

那是在价值观中。

所以我也尝试用

注释掉所有行
<dimen name="abs__action_bar_icon_vertical_padding">0dip</dimen>

但没有效果……

【问题讨论】:

  • stackoverflow.com/a/11686495/1012284。发布您的 dimens.xml 值。
  • 其中有 8 个...
  • 我在 res/values/ 中发布了一个,但我似乎不知道如何帮助我将所有尺寸 0dip 设置为 0 .
  • 需要用于 | 的 xml选项卡1 |标签2 |标签3 | t 操作栏布局。
  • 这就是问题,我不知道 ABS 从哪里得到它:S

标签: android android-layout tabs actionbarsherlock padding


【解决方案1】:

如果您的 Galaxy S3 运行 ICS 或更高版本,ABS 将使用本机操作栏。您对库所做的任何更改都将无效。

【讨论】:

  • 好的,这是运行 4.0.3 的有用信息,所以它是 ICS。知道如何使用本机操作栏删除填充?
  • 创建自己的ROM?否则真的不可能。
  • ROM?你的意思是我创建了一个覆盖本机操作栏的整个类?好吧,我正在使用 ABS,所以我不需要这样做:S
  • 不,我的意思是修改Android操作系统并将其安装在您的手机上。这些是系统资源,不能由应用程序修改。您也可以尝试破解 ABS 以不使用本机 AB,但这可能不是一个好主意。
  • 好吧,该应用程序将适用于多个用户,所以我无法更改每个人的 ROM。所以我想只有改变 ABS :S
【解决方案2】:

Action Bar Sherlock 库有一些限制。

限制 1:无法调整操作栏中的操作菜单项

说明: 您可以在操作栏中有不同的操作菜单项,也可以在操作栏中设置这些项目的图标。但是,调整操作项之间的填充,为操作栏中的操作项删除 Toast 是不可能的。因为 Action bar Sherlock 使用原生的 action bar。只有外观与 ICS 相似,但行为受到限制。

限制 2:活动娱乐

说明: 当屏幕方向改变时,它将重新创建处于活动状态的活动。因此用户界面将得到更新,并且它不会保存应用程序或活动的状态.. 注意动作条 Sherlock

【讨论】:

  • 这不是绝对正确的,因为我可以更改除 xlarge 之外的所有其他布局的填充。
  • 您可以更改放置在操作菜单中的图标的内边距,但不能更改操作菜单项之间的内边距
  • 也许你可以试试这个,stackoverflow.com/questions/12720494/…
  • 我正在尝试: 但一切都没有改变。我的主题是 myapplication
  • 在Sherlock库中,这也是一个限制,无论你试图改变它都不会发生
【解决方案3】:

我不会直接将 ABS 用于选项卡导航。考虑使用与 ABS 兼容的 Viewpager 和 ViewPagerIndicator(同一作者),并且您可以更好地控制外观。这样用户也可以左右滑动切换标签。

【讨论】:

  • 你知道播种需要多长时间吗?因为我正在做一个项目,它处于最终状态......
  • 这绝对比使用原生选项卡省力得多。您应该记住,ASB 示例中的选项卡导航不是 ASB 本身的一部分,因此看起来“原生”(还记得 pre-ics 选项卡吗?)。 VPI 现在有一个 IconPageIndicator,所以你也可以有标签的图标。看看 VPI 的示例,它们非常不言自明:github.com/JakeWharton/Android-ViewPagerIndicator/tree/master/…
  • 好吧,我在使用 sherlockmapactivity 时还有一些其他问题,因为我的应用程序中有地图,所以我不能忽略那个库。当我有一个名为 library 的库时,我无法导入另一个库。
  • 谁说的,应该叫图书馆?您可以重命名始终重命名它们。你应该注意的是兼容性库,它们都应该使用相同的版本和相同的文件。
【解决方案4】:

无论如何都会发生这种情况吗?老实说,我并没有在原生操作栏上玩太多。如果您执行inset drawable 之类的操作怎么办?这会改变它的绘制方式并可能缩小图标,但在你找到更好的东西之前可能是一个解决方案。

【讨论】:

  • 好吧,我不知道如何使用它。我只在我的代码 setIcon 中这样做。而且我不会更改 ABS 的 xml 文件...
  • 哦,我忘了你可以使用文本标签。标签是图像吗?此外,您也许可以为标签设置自己的视图
  • 好吧,我的标签是图片。如果我使用自己的选项卡视图也没关系,因为 ABS 在 xlarge 上使用本机。
  • 啊。我在想您可以使用可绘制对象并在可绘制对象周围添加填充
  • 那么我就没有问题了,不是吗?
猜你喜欢
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 1970-01-01
  • 2012-03-01
相关资源
最近更新 更多