Android 몰입 식 상태 표시 줄 과 화 웨 이 가상 버튼 충돌 문제 해결
10657 단어 android몰입 식 상태 표시 줄화 웨 이 버튼
이것 은 제 핸드폰 입 니 다.OnePlus 3T 7.1.1 버 전(무료 광고,돈 을 주지 않 았 군요)은 화 웨 이의 핸드폰 이 아 닙 니 다.하지만 가상 버튼 을 설정 할 수 있 습 니 다.밑 에 있 는 네 비게 이 션 바 에 문제 가 없고 상단 상태 표시 줄 도 성공 적 으로 실현 되 었 습 니 다.효과 도 를 보고 다음 에 바로 차 를 몰 았 습 니 다.
홈 페이지 레이아웃:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.statusbarvirtualkey.statusbarvirtualkey.MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/home_title"
layout="@layout/layout_home_title" />
<FrameLayout
android:id="@+id/home_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_alignParentTop="true"
android:layout_marginTop="70dp"
android:layout_above="@+id/line_bottom"
android:layout_weight="1"
>
</FrameLayout>
<View
android:id="@+id/line_bottom"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:alpha="0.6"
android:layout_above="@+id/bottom_navigation_view"
android:background="@android:color/darker_gray"
/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation_view"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
app:itemBackground="@android:color/white"
app:elevation="2dp"
app:itemTextColor="@color/selector_item_color"
app:itemIconTint="@color/selector_item_color"
app:menu="@menu/navigation_menu"
>
</android.support.design.widget.BottomNavigationView>
</RelativeLayout>
</RelativeLayout>
아래쪽 네 비게 이 션 표시 줄 은 BottomNavigation View 를 사용 합 니 다.AndroidStudio 가 직접 도입 합 니 다.이것 은 이 글 의 중점 부분 이 아니 기 때문에 상세 한 소 개 를 하지 않 습 니 다.구체 적 인 실현 을 보고 싶 으 면 제 소스 코드 를 볼 수 있 습 니 다.상단 은 사용자 정의 Toolbar 입 니 다.코드 는 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/myToolBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/layer_list_bottom_line"
android:padding="@dimen/titleBarPadding"
android:elevation="@dimen/primary_shadow_height"
android:clipToPadding="true"
android:fitsSystemWindows="true"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/home_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:drawableLeft="@mipmap/ind_icon_fan"
android:drawablePadding="5dp"
android:padding="@dimen/dp_4" />
<TextView
android:id="@+id/home_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:ellipsize="end"
android:singleLine="true"
android:maxEms="5"
android:textColor="@android:color/black"
android:textSize="7.0sp"
android:typeface="monospace" />
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:singleLine="true"
android:text="@string/app_name"
android:textColor="@android:color/white"
android:textSize="20sp" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
주의해 야 할 것 은 Android:fitsSystem Windows 라 는 속성 입 니 다.주로 현재 이 속성 을 설정 한 view 의 padding 을 조정 하여 statusbar 공간 을 남 겨 두 고 쓰 지 않 으 면 구조 에 심각 한 문제 가 생 길 수 있 으 므 로 쓰 지 않 는 결 과 를 스스로 시험 할 수 있 습 니 다.기본 레이아웃 을 소개 합 니 다.다음은 몰입 식 상태 표시 줄 을 어떻게 설정 합 니까?AndroidManifest 레이아웃 에서 테 마 를 설정 합 니 다.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
여기 서 주의해 야 할 것 은 3 개의 폴 더 를 설정 해 야 합 니 다.각각 안 드 로 이 드 버 전이 일치 하지 않 습 니 다.values,values-v19,values-v21,values 디 렉 터 리 에서 설정 해 야 합 니 다.
<style name="AppTheme" parent="@style/BaseAppTheme">
</style>
<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
values-v19:
<style name="AppTheme" parent="@style/BaseAppTheme">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">false</item>
</style>
values-v21:
<style name="AppTheme" parent="BaseAppTheme">
<item name="android:statusBarColor">@color/colorPrimary</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>
주의 하 세 요.다음은 Activity 의 중점 작업 입 니 다.여기에 중점 코드 만 붙 이 는 방법 을 소개 합 니 다.onCreate 방법:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar_title = (TextView) findViewById(R.id.toolbar_title);
// BaseActivity
highApiEffects();
mToolBar = (Toolbar) getWindow().findViewById(R.id.home_title);
setSupportActionBar(mToolBar);
}
@TargetApi(Build.VERSION_CODES.KITKAT)
private void highApiEffects() {
getWindow().getDecorView().setFitsSystemWindows(true);
// @
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// @ , ( ) ,
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
고에너지 경고!!!이 코드 천!만!아니!네!가!!!넣 으 면 충돌 이 야!여기까지 몰입 식 상태 표시 줄 과 아래쪽 가상 버튼 의 충돌 문제 가 해결 되 었 다.마지막 으로 제 핸드폰 세 개 를 붙 인 몰입 식 상태 표시 줄 캡 처,4.4 의 핸드폰 이 없습니다.(사실은 시 뮬 레이 터 를 켜 기 가 귀 찮 습 니 다.)죄 송 하지만 붙 일 수 없습니다.여 기 는 각각:
Android 4.2.2,몰입 하지 않 은 상태:
Android 5.1:
Android 7.1.1,아래쪽 에 가상 버튼 이 있 습 니 다.즉,이 글 의 주제 입 니 다.
원본 코드 다운로드
위 에서 말 한 것 은 안 드 로 이 드 몰입 식 상태 표시 줄 과 화 웨 이 가상 버튼 의 충돌 문 제 를 해결 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.