android:fix navbar setHidden cause bottombar translucent
This commit is contained in:
parent
56f21f32cc
commit
e11a26bd6d
@ -29,7 +29,7 @@ android {
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
//buildJSBundle.exec()
|
||||
buildJSBundle.exec()
|
||||
}
|
||||
|
||||
task buildJSBundle(type: Exec) {
|
||||
|
@ -25,6 +25,7 @@ import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
@ -32,7 +33,6 @@ import android.widget.TextView;
|
||||
import androidx.annotation.AttrRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import pub.doric.R;
|
||||
|
||||
@ -88,15 +88,27 @@ public class BaseDoricNavBar extends FrameLayout implements IDoricNavBar {
|
||||
@Override
|
||||
public void setHidden(boolean b) {
|
||||
setVisibility(b ? GONE : VISIBLE);
|
||||
AppCompatActivity activity = (AppCompatActivity) getContext();
|
||||
Activity activity = (Activity) getContext();
|
||||
Window window = activity.getWindow();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
if (b) {
|
||||
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
||||
window.getDecorView().setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
| SYSTEM_UI_FLAG_LAYOUT_STABLE);
|
||||
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
window.setStatusBarColor(Color.TRANSPARENT);
|
||||
}
|
||||
} else {
|
||||
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
||||
int visibility = window.getDecorView().getSystemUiVisibility();
|
||||
visibility = visibility ^ (SYSTEM_UI_FLAG_LAYOUT_STABLE | SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
|
||||
window.getDecorView().setSystemUiVisibility(visibility);
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,133 +6,139 @@ const shareIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAAD
|
||||
@Entry
|
||||
class NavbarDemo extends Panel {
|
||||
build(rootView: Group): void {
|
||||
scroller(vlayout([
|
||||
title("Navbar Demo"),
|
||||
label('isHidden').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).isHidden().then(e => modal(context).alert(`Navbar isHidden:${e}`)).catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setHidden').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).isHidden()
|
||||
.then(e => navbar(context).setHidden(!e))
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setTitle').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).setTitle('Setted Title')
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setBgColor').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).setBgColor(Color.YELLOW)
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setLeft').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).setLeft(text({
|
||||
width: 70,
|
||||
height: 44,
|
||||
textColor: Color.BLACK,
|
||||
layoutConfig: layoutConfig().just().configAlignment(Gravity.Center),
|
||||
text: "Left",
|
||||
}))
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setRight').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).setRight(hlayout([
|
||||
text({
|
||||
width: 70,
|
||||
height: 44,
|
||||
textColor: Color.BLACK,
|
||||
layoutConfig: layoutConfig().just().configAlignment(Gravity.Center),
|
||||
text: "Right",
|
||||
}),
|
||||
image({
|
||||
imageBase64: shareIcon
|
||||
}).apply({
|
||||
layoutConfig: layoutConfig().just().configAlignment(gravity().centerY()),
|
||||
width: 33,
|
||||
height: 33,
|
||||
onClick: () => {
|
||||
modal(context).toast('Right Clicked', Gravity.Bottom)
|
||||
}
|
||||
})
|
||||
]))
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('Pop').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navigator(context).pop()
|
||||
}
|
||||
} as IText),
|
||||
]).apply({
|
||||
layoutConfig: layoutConfig().most().configHeight(LayoutSpec.FIT),
|
||||
gravity: gravity().center(),
|
||||
space: 10,
|
||||
} as IVLayout)).apply({
|
||||
layoutConfig: layoutConfig().most(),
|
||||
}).in(rootView)
|
||||
scroller(
|
||||
vlayout(
|
||||
[
|
||||
title("Navbar Demo"),
|
||||
label('isHidden').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).isHidden().then(e => modal(context).alert(`Navbar isHidden:${e}`)).catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setHidden').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).isHidden()
|
||||
.then(e => navbar(context).setHidden(!e))
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setTitle').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).setTitle('Setted Title')
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setBgColor').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).setBgColor(Color.YELLOW)
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setLeft').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).setLeft(text({
|
||||
width: 70,
|
||||
height: 44,
|
||||
textColor: Color.BLACK,
|
||||
layoutConfig: layoutConfig().just().configAlignment(Gravity.Center),
|
||||
text: "Left",
|
||||
}))
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('setRight').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navbar(context).setRight(hlayout([
|
||||
text({
|
||||
width: 70,
|
||||
height: 44,
|
||||
textColor: Color.BLACK,
|
||||
layoutConfig: layoutConfig().just().configAlignment(Gravity.Center),
|
||||
text: "Right",
|
||||
}),
|
||||
image({
|
||||
imageBase64: shareIcon
|
||||
}).apply({
|
||||
layoutConfig: layoutConfig().just().configAlignment(gravity().centerY()),
|
||||
width: 33,
|
||||
height: 33,
|
||||
onClick: () => {
|
||||
modal(context).toast('Right Clicked', Gravity.Bottom)
|
||||
}
|
||||
})
|
||||
]))
|
||||
.catch(e => {
|
||||
modal(context).alert(e)
|
||||
})
|
||||
}
|
||||
} as IText),
|
||||
label('Pop').apply({
|
||||
width: 200,
|
||||
height: 50,
|
||||
backgroundColor: colors[0],
|
||||
textSize: 30,
|
||||
textColor: Color.WHITE,
|
||||
layoutConfig: layoutConfig().just(),
|
||||
onClick: () => {
|
||||
navigator(context).pop()
|
||||
}
|
||||
} as IText),
|
||||
],
|
||||
{
|
||||
layoutConfig: layoutConfig().most().configHeight(LayoutSpec.FIT),
|
||||
gravity: gravity().center(),
|
||||
space: 10,
|
||||
}),
|
||||
{
|
||||
layoutConfig: layoutConfig().most(),
|
||||
backgroundColor: Color.BLUE,
|
||||
}
|
||||
).in(rootView)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user