19

我想在带有叠加层的操作栏下方放置一个视图。有没有办法通过 XML 布局做到这一点?

我想避免使用常量,因为已经至少有4 个可能的值,而且这个数字可能会增长。

与ActionBarSherlock的兼容性是一个加号。

4

3 回答 3

46

android:layout_marginTop="?attr/actionBarSize"

这将根据屏幕配置自动考虑大小的变化。您可以在 ActionBarSherlock 附带的“Demos”示例的“Overlay”示例中看到它的使用演示。

于 2012-07-10T18:39:06.567 回答
7

如果您正在处理配置更改,杰克沃顿的回答不起作用。

这就是我通过代码解决这个问题的方法,以防它帮助任何人:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    layoutTheView();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    layoutTheView();
}

private void layoutTheView() {
    ActionBar actionBar = this.getSupportActionBar();
    ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mTheView.getLayoutParams();
    int actionBarHeight = actionBar.getHeight();
    params.setMargins(0, actionBarHeight, 0, 0);
    mTheView.setLayoutParams(params);
    mTheView.requestLayout();
}
于 2012-07-10T18:43:08.143 回答
-1

使用填充顶部

android:paddingTop="50dp"

于 2014-06-24T12:15:22.250 回答