透明操作栏下方的导航抽屉

4
我正在使用@GunnarKarlsson在这里展示的以下代码获得透明的ActionBar:Transparent Actionbar: custom tabcolor
getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));

它的功能基本完美,除了它对导航抽屉的影响。它不是直接从操作栏下方滑出,而是滑过它。 下面有两张图片,以澄清我的意思。我正在尝试弄清楚如何实现第一张图中的导航抽屉位置,但保留第二张图中显示的透明效果。有人遇到过类似的问题吗?
1个回答

6
要实现这一点,您需要计算操作栏的高度,并将marginTop设置为导航抽屉。使用以下方法来计算操作栏的高度:
 public static int CalculateActionBar(Context context){
        // Calculate ActionBar height
        TypedValue tv = new TypedValue();
        if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {

           int mActionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());
           return mActionBarHeight;
        }
        return 0;
    }

然后从Java设置Margin Top到您的Navigation Drawer对象。

通过这样做,您将实现在操作栏下方的导航抽屉。


3
或者使用"?android:attr/actionBarSize"在XML中指定大小。 - Boris Treukhov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接