如何隐藏状态栏

时间:2016-03-19 06:51:52

标签: android android-manifest

我被状态栏隐藏了。让我解释一下我正在实施活动,并将清单文件放在android:windowSoftInputMode="adjustResize"的{​​{1}}以下的键盘位置它工作正常,但我也想隐藏edittext,,所以我使用{{1}主题。但是当键盘出现app导航栏时也会滚动。如何在键盘出现时限制滚动导航栏并隐藏通知栏。enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为这有助于你=> http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)

=> setSystemUiVisibility(newVis); //这个方法可以帮助你

=>这是一类信息和更好的理解。

public static class Content扩展了ScrollView         实现View.OnSystemUiVisibilityChangeListener,View.OnClickListener {     TextView mText;     TextView mTitleView;     SeekBar mSeekView;     boolean mNavVisible;     int mBaseSystemUiVisibility = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN             | SYSTEM_UI_FLAG_LAYOUT_STABLE;     int mLastSystemUiVis;

Runnable mNavHider = new Runnable() {
    @Override public void run() {
        setNavVisibility(false);
    }
};

public Content(Context context, AttributeSet attrs) {
    super(context, attrs);

    mText = new TextView(context);
    mText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
    mText.setText(context.getString(R.string.alert_dialog_two_buttons2ultra_msg));
    mText.setClickable(false);
    mText.setOnClickListener(this);
    mText.setTextIsSelectable(true);
    addView(mText, new ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

    setOnSystemUiVisibilityChangeListener(this);
}

public void init(TextView title, SeekBar seek) {
    // This called by the containing activity to supply the surrounding
    // state of the content browser that it will interact with.
    mTitleView = title;
    mSeekView = seek;
    setNavVisibility(true);
}

@Override public void onSystemUiVisibilityChange(int visibility) {
    // Detect when we go out of low-profile mode, to also go out
    // of full screen.  We only do this when the low profile mode
    // is changing from its last state, and turning off.
    int diff = mLastSystemUiVis ^ visibility;
    mLastSystemUiVis = visibility;
    if ((diff&SYSTEM_UI_FLAG_LOW_PROFILE) != 0
            && (visibility&SYSTEM_UI_FLAG_LOW_PROFILE) == 0) {
        setNavVisibility(true);
    }
}

@Override protected void onWindowVisibilityChanged(int visibility) {
    super.onWindowVisibilityChanged(visibility);

    // When we become visible, we show our navigation elements briefly
    // before hiding them.
    setNavVisibility(true);
    getHandler().postDelayed(mNavHider, 2000);
}

@Override protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    super.onScrollChanged(l, t, oldl, oldt);

    // When the user scrolls, we hide navigation elements.
    setNavVisibility(false);
}

@Override public void onClick(View v) {
    // When the user clicks, we toggle the visibility of navigation elements.
    int curVis = getSystemUiVisibility();
    setNavVisibility((curVis&SYSTEM_UI_FLAG_LOW_PROFILE) != 0);
}

void setBaseSystemUiVisibility(int visibility) {
    mBaseSystemUiVisibility = visibility;
}

void setNavVisibility(boolean visible) {
    int newVis = mBaseSystemUiVisibility;
    if (!visible) {
        newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN;
    }
    final boolean changed = newVis == getSystemUiVisibility();

    // Unschedule any pending event to hide navigation if we are
    // changing the visibility, or making the UI visible.
    if (changed || visible) {
        Handler h = getHandler();
        if (h != null) {
            h.removeCallbacks(mNavHider);
        }
    }

    // Set the new desired visibility.
    setSystemUiVisibility(newVis);
    mTitleView.setVisibility(visible ? VISIBLE : INVISIBLE);
    mSeekView.setVisibility(visible ? VISIBLE : INVISIBLE);
}

}