相关疑难解决方法(0)

getDecorView方法返回视图包含棒棒糖上的导航栏视图?

我使用SlidingMenu来实现我的滑入式菜单.

代码是

private void initSlidingMenu()
{
    // configure the SlidingMenu
    menu = new SlidingMenu(this);
    menu.setMode(SlidingMenu.LEFT);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    //        menu.setShadowDrawable(R.drawable.shadoew);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    //        menu.setFadeDegree(0.35f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
    menu.setMenu(R.layout.menu_main_sliding);
}
Run Code Online (Sandbox Code Playgroud)

然后我遇到的问题是导航栏背后的布局. 我的导航栏后面的底部视图导航栏背后的底部布局

我将SlidingMenu.SLIDING_WINDOW更改为SlidingMenu.SLIDING_CONTENT.这是有效的,但动作栏总是在顶部.

看看SlidingMenu的源代码,我找到这个代码来添加slidemenu.

    switch (slideStyle) {
    case SLIDING_WINDOW:
        mActionbarOverlay = false;
        ViewGroup decor = (ViewGroup) activity.getWindow().getDecorView();
        ViewGroup decorChild = (ViewGroup) decor.getChildAt(0);
        // save ActionBar themes that have transparent assets
        decorChild.setBackgroundResource(background);
        decor.removeView(decorChild);
        decor.addView(this);
        setContent(decorChild);
        break;
    case SLIDING_CONTENT:
        mActionbarOverlay = actionbarOverlay;
        // take the above view out of
        ViewGroup contentParent = (ViewGroup)activity.findViewById(android.R.id.content);
        View content …
Run Code Online (Sandbox Code Playgroud)

android-activity slidingmenu android-5.0-lollipop

10
推荐指数
2
解决办法
3525
查看次数

Android导航栏覆盖了我的视图

我在Nexus等设备上遇到Android导航栏的问题.只需在所有没有硬件菜单按钮的设备上.

让我更详细地解释一下这个问题.

我有一个应用程序,其中有3个部分.内容,ActionBar和带有SeekBar的底部面板.

在此输入图像描述

带有SeekBar的ActionBar和底部面板覆盖了内容.每次我点击内容时,ActionBar和带有SeekBar的底部面板都会消失.这完全符合它的工作方式.这是我用于隐藏系统UI的代码片段:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {                
            decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);
} else {                
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
    actionBar.hide();
}
findViewById(R.id.read_book_bottom_bar).setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

onCreate我的活动方法中,我有这段代码:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {            
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);          
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN);   
}
Run Code Online (Sandbox Code Playgroud)

但是,当我在具有Android导航栏的设备上启动应用程序时,使用SeekBar显示底部面板时出现问题.简单来说,Android导航栏使用SeekBar覆盖底部面板.这是一个截图:

在此输入图像描述

但每次我点击内容时,Android导航栏都会随着ActionBar和带有SeekBar的底部面板一起消失.所以,问题在于,每当有人想在NEXUS等设备上使用底层面板和SeekBar时,他/她将无法使用它,因为它隐藏在Android导航栏下.

有人可以帮我解决这个问题吗?谢谢大家.

android overlay navigationbar

8
推荐指数
1
解决办法
4875
查看次数

使用Feinstein SldingMenu和AppCompat v21的Android L ActionBarActivity在屏幕底部被截断

我正在使用AppCompat v21Style"NoActionBar"并添加一个Action/Toolbar onCreate.

还添加了Feinstein的SlidingMenu,这导致了Activity(因此内部片段)与Android的导航按钮重叠的问题(它没有完全显示,在底部被切断)

如果我添加:

android:layout_marginBottom="48dp"
Run Code Online (Sandbox Code Playgroud)

在布局中,一切都是可见的(当然).

在Android 4.4上.一切都正常显示.

使用支持lib在Android L上我缺少什么?

SlidingMenu在onCreate中添加:

super.onCreate(..)
setContentView(..)

menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
menu.setMenu(R.layout.menu);
menu.setBehindWidthRes(200dp);
Run Code Online (Sandbox Code Playgroud)

解:

这个问题在这里说明https://github.com/jfeinstein10/SlidingMenu/issues/680(包括解决方案)

Slding Menu to SLIDING_CONTENT
OR: update the SlidingMenu source like mentioned in the link aboce
Run Code Online (Sandbox Code Playgroud)

更好的解决方案:(
也在5.0上使用三星设备) - 由withaay提供

将以下行添加到SlidingMenu构造函数对我有用.我没有必要进行任何其他代码更改.

if(Build.VERSION.SDK_INT >= 21)
    setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-actionbaractivity jfeinstein android-5.0-lollipop

4
推荐指数
1
解决办法
1126
查看次数