【发布时间】:2013-09-05 10:44:20
【问题描述】:
我在计算ActionBar 的高度时遇到了一个奇怪的问题。我的应用中有几个部分位于ActionBar 的正下方,我还使用了 Chris Banes 的库actionbar-pulltorefresh。
我将使用 pull to refresh 库中的示例。我遇到了与问题here 完全相同的事情,除了我正在按照指南对Fragments 所说的那样做所有事情。它基本上计算出ActionBar 的高度约为应有的一半。同样在应用程序的不同部分,我将PopupWindow 定位在ActionBar 下方,因此我调用getHeight() 并将该位置用于我的窗口,我遇到与拉动刷新库相同的问题.
所以这让我觉得这与ActionBar 高度的测量方式有关,并且可能是样式问题。
但这就是有趣的地方。如果我将设备旋转到横向模式,即使我旋转回纵向,它也会很好地计算高度并将所有内容放在应该从该点开始的位置。在我重新启动应用程序并从内存中将其杀死并重新开始之前,它突然被修复了。
有人遇到过类似的事情吗?
注意:我现在使用的是 appcompat 库,但我之前使用的是 ActionBarSherlock,以及某个时候的基本 ActionBar,所有场景都给出了相同的结果。
更新 1: 我从问题 here、here 和 here 中得到了相同的结果。然而,我正在做 README 中所说的一切,所以我相当有信心这与我的设备如何测量 ActionBar 高度有关。
更新 2:我在另一个活动中使用了操作栏 PullToRefresh 库,它工作正常,所以它一定与我的主要 Activity 有关。
【问题讨论】:
-
问题是你什么时候打电话给
getHeight()?在特定时间拉动刷新库调用它。即当View被创建时。在旁注中,您使用的是view pager? -
我在一些
Fragments中使用ViewPager,但问题存在于父Activity中。 -
我打电话给
getHeight(),这是我ActivityonCreate()中的第一件事。
标签: android actionbarsherlock android-actionbar android-actionbar-compat