Android Theme.NoTitleBar nie działa
W mojej aplikacji mam przesuwany pasek menu na Facebooku, w którym dwie treści i główny układ aplikacji są obsługiwane przez niestandardową klasę układu.
Chcę usunąć pasek tytułu mojej aplikacji
Kwestia:
Nawet jeśli jestem
android: Theme.Light.NoTitleBar
w moim manifeście znajduje się puste miejsce na pasku tytułu. Dzięki temu cały mój układ jest przesunięty w dół.
Próbowałem użyć
requestWindowFeature (Window.FEATURE_NO_TITLE);
i
getWindow (). setFlags (WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
ale nadal przestrzeń paska tytułowego nie jest usuwana.
Tak wygląda aplikacja
Myślę, że jest to spowodowane klasą Custom LinearLayout, która zawiera główny układ przesuwny. Ale nie mogę usunąć przestrzeni paska tytułowego z niestandardowej klasy układu. Zaproponuj lepsze rozwiązanie.
Niestandardowa klasa układu
public class MainLayout extends LinearLayout {
public MainLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MainLayout(Context context) {
super(context);
}
// Overriding LinearLayout core methods
// layout based on the children
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mainLayoutWidth = MeasureSpec.getSize(widthMeasureSpec);
menuRightMargin = mainLayoutWidth * 10 / 100;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
menu = this.getChildAt(0);
content = this.getChildAt(1);
content.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return MainLayout.this.onContentTouch(v, event);
}
});
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
if(changed) {
LayoutParams contentLayoutParams = (LayoutParams)content.getLayoutParams();
contentLayoutParams.height = this.getHeight();
contentLayoutParams.width = this.getWidth(); LayoutParams menuLayoutParams = (LayoutParams)menu.getLayoutParams();
menuLayoutParams.width = this.getWidth() - menuRightMargin;
}
menu.layout(left, top, right - menuRightMargin, bottom);
content.layout(left + contentXOffset, top, right + contentXOffset, bottom);
}
}