- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,我刚刚设计了一个带有弹出菜单的自定义小部件。这意味着默认情况下我必须扩展 AppCompatActivity 并被迫使用Theme.AppCompat.NoActionBar 或ThemeOverlay.AppCompat.Dark 或ThemeOverlay.AppCompat.Dark.ActionBar
问题是,我想要用我用来替换操作栏的小部件为黑色,并保持弹出菜单为灰色,以及通过按设备操作菜单出现的菜单为灰色。任何人都可以发布示例代码来说明如何执行此操作。在这个阶段告诉我如何做不会有帮助,因为我已经尝试使用 java 并更改主题中的原色和深色。我还尝试在 styles.xml 中添加多个自定义样式,最终将其注释掉并最终删除。请参阅下面我的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp" tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#000"
android:elevation="5dp"
android:titleTextColor="#fff"
android:layout_alignParentTop="true"
android:title="@string/app_name"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
/>
package com.example.android.widget;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.ViewParent;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
myToolbar.setTitle("Widget");
myToolbar.setTitleTextColor(0xFFFFFFFF);
myToolbar.setBackgroundColor(Color.rgb(51, 51, 51));
View titleView = getWindow().findViewById(android.R.id.title);
if (titleView != null) {
ViewParent parent = titleView.getParent();
if (parent != null && (parent instanceof View)) {
View parentView = (View)parent;
parentView.setBackgroundColor(Color.rgb(51, 51, 51));
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
// Menu options to set and cancel the alarm.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// When the user clicks START ALARM, set the alarm.
case R.id.start_action:
return true;
// When the user clicks CANCEL ALARM, cancel the alarm.
case R.id.cancel_action:
return true;
}
return false;
}
}
<resources><!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:textColor">#fff</item>
<item name="android:actionMenuTextColor">#fff</item>
<item name="colorPrimary">@color/colorBackground</item>
<item name="colorPrimaryDark">@color/black</item>
</style>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".MainActivity">
<item android:id="@+id/start_action"
android:orderInCategory="100"
android:title="@string/start_text"
app:showAsAction="never"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
/>
<item android:id="@+id/cancel_action"
android:orderInCategory="100"
android:title="@string/cancel_text"
app:showAsAction="never"
/>
最佳答案
据我所知,您不需要扩展 AppCompactActivity,因为您使用的是自定义工具栏。上个月我遇到了同样的问题,我解决它的方法是摆脱 AppCompactActivity 扩展并用它代替:
public class MainActivity extends Activity
要查看应用程序在设计样式和编码时的外观,您需要选择 AppNoTitleBarFullScreen 的预览。
此外,您还需要在 OnCreate()
方法上添加以下内容:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.Your_Activity);
...
}
并在样式 XML 文件中添加以下内容:
<style name="Theme.AppCompat.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.NoTitleBar.FullScreen">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
我相信就是这样!...如果我错了请纠正我
关于java - Android 在 ThemeOverlay.AppCompat.Dark.ActionBar 中将工具栏/小部件背景更改为黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36469656/
我正在关注 this tutorial关于如何使用选项卡制作滑动 View 。我正在使用 Android Studio 1.2.2。 我的所有类都与示例代码中的类相同。当我运行该应用程序时,出现了 N
我将我的 android studio 更新到最新版本 - 3.0.1。从那时起,它在以下代码行中为 Theme 和 ThemeOverlay 提示“无法解析符号”。应用程序运行良好,但它们在文件中被
我受困于 ThemeOverlay.AppCompat.Dark.ActionBar。我需要一个带有白色文本的深色操作栏。 但这就是我得到的: 我有一个PreferenceActivity,我需要这个
有以下 Theme.AppCompat 类: Theme.AppCompat Theme.AppCompat.Light Theme.AppCompat.Light.DarkActionBar The
之前一切都很好,但现在当我重新打开我的 Android 项目时,在样式的值文件夹中,大部分父项目都以红色突出显示。我不明白为什么以及如何解决它。当我编译项目时它工作正常但我只想删除错误。下面是错误文件
嗨,我刚刚设计了一个带有弹出菜单的自定义小部件。这意味着默认情况下我必须扩展 AppCompatActivity 并被迫使用Theme.AppCompat.NoActionBar 或ThemeOver
尝试以下: 删除软件包 compat v7 并重新添加 清理 bin 和 obj 文件夹,重建。 与 2017 年相比已修复 添加了“android:”前缀但没有成功,已还原 添加了“@style”前
我是一名优秀的程序员,十分优秀!