我正在尝试为一个人创建这个主题,而我只是其中一个活动:
因为我正在学习这种风格是如何工作的,现在我开始意识到我们有更多不同的风格。 android中的样式与整个宇宙中的原子不相容。所以我试图从这个网站上学习:http://jgilfelt.github.io/android-actionbarstylegenerator
但是,当我尝试在使用AppCompat的项目中应用其主题时,我得到了
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
错误类型。
我在我的选项卡式活动中从 ActionBarActivity 延伸,我现在感觉不安全(有人建议扩展 Activity 来解决此问题),因为之前的帖子我被建议使用AppCompat, ActionBarActivity 似乎与AppCompat有关。
我花了我一周的谷歌搜索解决方案,我遇到了这些问题:
但是,到目前为止,这就是我现在所拥有的:
所以,我无法做的唯一事情是
将徽标放在屏幕的左上角(在操作栏中),只会影响此特定活动的操作栏,(完成)
使橙色条显示选中的选项卡。
如何以最简单的方式实现这一目标?
这是我的values / style.xml文件:
<resources>
<!-- Base application theme. -->
<style name="SmartCampusTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/actionbar_bg_color</item>
</style>
<style name="GenericProgressIndicator" parent="@android:style/Widget.ProgressBar.Small">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:indeterminate">true</item>
</style>
</resources>
我的AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="greensmartcampus.eu.smartcampususerfeedbackapp">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:logo="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/SmartCampusTheme">
<!-- Splash screen while connecting to the web-server -->
<activity
android:name=".HomeScreen"
android:label="@string/title_activity_home_screen"
android:parentActivityName=".AbstractPortraitActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="greensmartcampus.eu.smartcampususerfeedbackapp.AbstractPortraitActivity" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- The activity where all actions take place -->
<activity
android:name=".ControlActivity"
android:label="@string/title_activity_home_screen"
android:parentActivityName=".AbstractPortraitActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="greensmartcampus.eu.smartcampususerfeedbackapp.AbstractPortraitActivity" />
</activity>
</application>
</manifest>
*聚苯乙烯。有趣的是,最新的Android Studio如何为标签式活动生成弃用的代码,然后抱怨它被弃用,好像这是你的错...
重要提示:我是MVC和模块化牧师(OSGi从业者)的忠实粉丝。所以我希望如果所有这些样式解决方案都包含在样式和绘制XML文件中(如果我正确回忆它们应该是这样),布局信息都包含在我的布局文件中,而我的java文件只包含有关行为的代码。例如,我可以通过 getSupportActionBar()。setDisplayShowHomeEnabled(true)显示带有java的操作栏图标,但在java中插入与布局相关的内容会破坏MVC模式。此外,我上面提到的网站可以使用动作栏中的图标创建布局,而无需使用单个java行。我只需要知道如何用AppCompat完成,显然我正在使用它,因为其他解决方案已被弃用。