2017-03-05 4 views
1

나는 앱을 가지고 있으며 로그인 화면에 Gmail, 페이스 북 및 수동 로그인과 같은 여러 가지 방법으로 로그인 할 수 있습니다. 그들은 모두 잘 작동하지만 앱 이름을 보여주는 상단 막대를 숨기려고 할 때 문제가 발생합니다. 나는 이것이 매니 페스트의 주제와 관련이 있다는 것을 알고 있지만 어떤 것도 설정하지 않았다. ...안드로이드를 숨기지 않는 앱의 상단 표시 줄

Manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    package="com.example.spuck" 
    android:versionCode="1" 
    android:versionName="1.0"> 

<uses-sdk 
    android:minSdkVersion="16" 
    android:targetSdkVersion="23" /> 


<application 
    android:allowBackup="true" 
    android:icon="@drawable/the_spuck_4" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 


<activity android:name=".LoginActivity"/> 

LoginActivity.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:facebook="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.spuck.LoginActivity" 
    style="@style/Red"> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="1" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginBottom="94dp"> 


    <Button 
     android:id="@+id/sign_in" 
     android:layout_width="260dp" 
     android:layout_height="35dp" 
     android:textSize="13dp" 
     android:text="Sign In" 
     android:textColor="@color/white" 
     android:textAllCaps="false" 
     android:background="@drawable/signin_button_login_activity" 
     android:gravity="center" 
     android:layout_below="@+id/login_button" 
     android:layout_alignLeft="@+id/sign_in_button" 
     android:layout_alignStart="@+id/sign_in_button" 
     android:layout_marginTop="33dp" /> 

    <ImageView 
     android:id="@+id/app_name" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:src="@drawable/the_spuck_3_2" 
     android:background="@drawable/white_with_round" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="30dp" /> 

    <com.google.android.gms.common.SignInButton 
     android:id="@+id/sign_in_button" 
     android:layout_width="260dp" 
     android:layout_height="35dp" 

     android:layout_marginTop="41dp" 
     android:layout_below="@+id/app_name" 
     android:layout_centerHorizontal="true" /> 

    <com.facebook.login.widget.LoginButton 
     android:id="@+id/login_button" 
     android:layout_width="255dp" 
     android:layout_height="60dp" 
     android:textColor="#ffffff" 
     android:layout_marginTop="10dp" 
     android:shadowColor="#000" 
     android:shadowDx="0" 
     android:shadowDy="0" 
     android:shadowRadius="10" 
     android:layout_below="@+id/sign_in_button" 
     android:layout_centerHorizontal="true" /> 
    </RelativeLayout> 
</RelativeLayout> 

AppTheme.NoActionBar.xml

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="colorPrimary">#ff5050</item> 
    <item name="colorPrimaryDark">#ff5050</item> 
</style> 
을 내 코드를 살펴 가지고 내가 잘못 뭐하는 거지 참조하십시오

답변

1

Nika가 말한 것처럼, 그의 접근 방식은 절대적으로 정확합니다. 두 가지 유형의 테마가 있다는 것을 알아야합니다. 하나는 API 21 이상이고 다른 하나는 API 21 이하입니다. 앱이 두 가지 API 조건 모두에서 작동하기를 원하기 때문에 두 버전 모두에 대한 테마를 지정해야합니다.

이제
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="colorPrimary">#ff5050</item> 
    <item name="colorPrimaryDark">#ff5050</item> 
</style> 

는 당신이 필요로하는이 액세스 할 수 아래 API (21)에 대한

<resources> 

    <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
     <item name="android:statusBarColor">#ff5050</item> 
     <item name="colorPrimary">#ff5050</item> 
     <item name="colorPrimaryDark">#ff5050</item> 
    </style> 
</resources> 

:

API 21

위 ... 아래의 코드를 참조하고 도움이 있으면 알려 주시기 매니페스트를 다음으로 변경하십시오.

<activity android:name=".LoginActivity" 
     android:theme="@style/AppTheme.NoActionBar"/> 

PS 해당 API에 대한 테마를 보는 방법이 확실하지 않은 경우 ctrl 버튼을 누르고 "AppTheme.NoActionBar"텍스트를 클릭하면 두 필드가 표시되어 두 필드를 모두 편집 할 수 있습니다.

+1

매우 상세한 답변 형제, 도와 주셔서 대단히 감사합니다! 감사! –

+0

응원가 형제! 도와 줄 수있어서 기뻐 :) –

2

활동 주제를 NoActionBar :

로 변경하십시오.
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="colorPrimary">#ff5050</item> 
    <item name="colorPrimaryDark">#ff5050</item> 
</style> 
+0

AppTheme.NoActionBar를 사용했는데 이제 내 전화의 알림 표시 줄이 흰색으로 바뀌 었습니다. –

+0

AppCompatActivity를 사용하고 있습니까? –

+0

예, 문제입니까? –