0

我之前问过一个关于 Android ActionBar 的类似问题:Change ActionBar Tabs background color

我仍然没有一个问题的答案:什么时候使用两线设计/何时使用单线设计?我为标签栏设置了一个自定义分隔线,它也用于水平布局。但是,要根据方向/屏幕尺寸等创建可绘制对象/样式,我需要知道何时使用哪种布局。查看Android源代码似乎他们对两种布局都使用相同的drawable,所以这对我没有帮助。更改选项卡视图的字体颜色时也会出现同样的问题。

我担心它会在代码中决定使用哪种格式,所以实际上没有任何办法解决这个问题。谁能证实这一点?或者至少有一种方法可以在代码中找出操作栏是单行还是两行?

4

1 回答 1

2

当 Android 认为屏幕尺寸/方向很窄时(如在正常尺寸的纵向屏幕上,或在小尺寸屏幕上,无论方向如何),Android 将在操作栏下方堆叠选项卡。同样,如果有很多选项卡,在某些情况下它们会显示为下拉列表,以确保最适合操作栏。

操作栏是一个高度自适应的 UI 控件。如果您打算使用它的导航模式,我强烈建议不要尝试预测它们的配置或尝试应用特定于每个的样式。无论如何,您的选项卡可绘制对象始终需要为 9patch,因为基本操作栏高度也会因方向和屏幕尺寸而异(请注意,其高度在横向时略小)。

也就是说,您可以在运行时使用其getHeight()方法查询操作栏高度。SDK 中包含的这个Honeycomb Gallery 示例使用了一堆逻辑OnGlobalLayoutListener来确保 Fragment 布局适当地响应各种操作栏大小。

于 2012-07-09T22:27:27.837 回答