使用叠加层在操作栏下方定位视图

时间:2012-07-10 18:00:35

标签: android android-actionbar actionbarsherlock

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

我想避免使用常量,因为已经存在至少4 possible values并且该数字可能会增长。

ActionBarSherlock的兼容性是一个优势。

3 个答案:

答案 0 :(得分:43)

android:layout_marginTop="?attr/actionBarSize"

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

答案 1 :(得分:7)

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

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

@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();
}

答案 2 :(得分:-1)

使用填充顶部

机器人:paddingTop =" 50dp"