android永久长期关闭隐藏导航栏,android – 永久隐藏活动的导航栏

可以永久删除活动中的导航栏吗?我想使用平板电脑上屏幕按钮上显示的按钮,而不是操作栏来移除该栏。

http://developer.android.com/design/get-started/ui-overview.html

我知道不建议这样做(我没有这样做),但我真的需要这样做。在我的布局上有另一个按钮,以便离开活动。我的应用程序的其余部分确实有导航栏。

可能吗?

我发现这个代码并改编了一点。问题在于,即使我隐藏导航栏,还有一个黑色的空间。我想系统会计算出导航栏的屏幕尺寸,不是吗?

public static class Content extends ImageView implements View.OnSystemUiVisibilityChangeListener, View.OnClickListener, ActionBar.OnMenuVisibilityListener {

Activity mActivity;

TextView mTitleView;

Button mPlayButton;

SeekBar mSeekView;

boolean mAddedMenuListener;

boolean mMenusOpen;

boolean mPaused;

boolean mNavVisible;

int mLastSystemUiVis;

Runnable mNavHider = new Runnable() {

@Override public void run() {

setNavVisibility(false);

}

};

public Content(Context context, AttributeSet attrs) {

super(context, attrs);

setOnSystemUiVisibilityChangeListener(this);

setOnClickListener(this);

}

public void init(Activity activity, TextView title, Button playButton,

SeekBar seek) {

// This called by the containing activity to supply the surrounding

// state of the video player that it will interact with.

mActivity = activity;

mTitleView = title;

mPlayButton = playButton;

mSeekView = seek;

mPlayButton.setOnClickListener(this);

setPlayPaused(true);

}

@Override protected void onAttachedToWindow() {

super.onAttachedToWindow();

if (mActivity != null) {

mAddedMenuListener = true;

mActivity.getActionBar().addOnMenuVisibilityListener(this);

}

}

@Override protected void onDetachedFromWindow() {

super.onDetachedFromWindow();

if (mAddedMenuListener) {

mActivity.getActionBar().removeOnMenuVisibilityListener(this);

}

}

@Override public void onSystemUiVisibilityChange(int visibility) {

// Detect when we go out of nav-hidden mode, to clear our state

// back to having the full UI chrome up. Only do this when

// the state is changing and nav is no longer hidden.

int diff = mLastSystemUiVis ^ visibility;

mLastSystemUiVis = visibility;

if ((diff&SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0

&& (visibility&SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) {

setNavVisibility(true);

}

}

@Override protected void onWindowVisibilityChanged(int visibility) {

super.onWindowVisibilityChanged(visibility);

// When we become visible or invisible, play is paused.

setPlayPaused(true);

}

@Override public void onClick(View v) {

if (v == mPlayButton) {

// Clicking on the play/pause button toggles its state.

setPlayPaused(!mPaused);

} else {

// Clicking elsewhere makes the navigation visible.

setNavVisibility(true);

}

}

@Override public void onMenuVisibilityChanged(boolean isVisible) {

mMenusOpen = isVisible;

setNavVisibility(true);

}

void setPlayPaused(boolean paused) {

mPaused = paused;

mPlayButton.setText(paused ? R.string.play : R.string.pause);

setKeepScreenOn(!paused);

setNavVisibility(true);

}

void setNavVisibility(boolean visible) {

int newVis = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| SYSTEM_UI_FLAG_LAYOUT_STABLE;

if (!visible) {

newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN

| SYSTEM_UI_FLAG_HIDE_NAVIGATION;

}

// If we are now visible, schedule a timer for us to go invisible.

if (visible) {

Handler h = getHandler();

if (h != null) {

h.removeCallbacks(mNavHider);

if (!mMenusOpen && !mPaused) {

// If the menus are open or play is paused, we will not auto-hide.

h.postDelayed(mNavHider, 1500);

}

}

}

// Set the new desired visibility.

setSystemUiVisibility(newVis);

mTitleView.setVisibility(visible ? VISIBLE : INVISIBLE);

mPlayButton.setVisibility(visible ? VISIBLE : INVISIBLE);

mSeekView.setVisibility(visible ? VISIBLE : INVISIBLE);

}

}

任何解决方案?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值