我有一个应用程序,在登录屏幕中,我有多种登录方式,如gmail,facebook和手动登录。他们都很好地工作,但当我试图隐藏显示应用程序名称的顶部栏时出现问题。我知道这与清单中的主题有关,但我还没有设置。请看看我的代码,看看我做错了什么......
的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>
答案 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>
答案 1 :(得分:1)
正如Nika所说,他的做法绝对正确。你需要看到的是有两种类型的主题。一个用于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"/>
如果您不确定如何查看各自API的主题,请按住ctrl按钮并单击&#34; AppTheme.NoActionBar&#34;文本,它将显示两个可以找到它们的字段,并且只需编辑它们。