【问题标题】:Remove ActionBar shadow programmatically at runtime在运行时以编程方式删除 ActionBar 阴影
【发布时间】:2014-07-16 21:48:44
【问题描述】:

ActionBar 阴影可以通过主题和windowContentOverlay 标签移除,但是否可以在运行时从代码中动态移除和重新添加它?

同样的问题here,没有得到任何解答。

【问题讨论】:

  • 为什么不创建和使用自定义操作栏?那么你可以用它做任何你想做的事情
  • 好吧,我不知道自定义操作栏是什么意思,但另一种方法是从主题中删除阴影,然后在我需要的地方手动添加自定义阴影。但这不是很方便,应该有一种方法可以以编程方式删除默认值。

标签: android android-actionbar


【解决方案1】:

经过一段时间的努力,我能够为 API > 21 写一个解决方案:

private ActionBar actionBar;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle instance) {
    // ...

    actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();

    return view;
}

@Override
public void onResume() {
    super.onResume();

    if (actionBar != null) {
        actionBar.setElevation(0);
    }
}

@Override
public void onPause() {
    super.onPause();

    if (actionBar != null) {
        actionBar.setElevation(getResources().getDimension(R.dimen.toolbar_elevation)); //8dp
    }
}

希望这个答案能以某种方式对你有所帮助,尽管你有一段时间问过这个问题:

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多