2017-03-05 78 views
1

我有一个应用程序,并在登录屏幕我有多种方式登录像Gmail,Facebook和手动登录。他们都很好地工作,但当我尝试隐藏显示应用程序名称的顶部栏时出现问题。我知道这与清单中的主题有关,但我没有设置任何内容。请看看我的代码,看看我做错了......顶部酒吧的应用程序不隐藏android

的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

正如尼卡所言,他的方法绝对正确。你需要看到的是有两种类型的主题。一个用于API 21及以上,另一个用于API 21及以下。您需要做的是将他所说的主题分配给这两个版本,因为您希望您的应用程序适用于两种API条件。请参阅下面的代码,让我知道,如果它帮助...

的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及以下:

<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> 

现在访问此需要将您的清单更改为:

<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

是的,这是一个问题? –