gpt4 book ai didi

java - Android 在 ThemeOverlay.AppCompat.Dark.ActionBar 中将工具栏/小部件背景更改为黑色

转载 作者:行者123 更新时间:2023-12-01 10:06:03 25 4
gpt4 key购买 nike

Action Bar Menu Must Stay Grey Popup Menu Must Stay Grey Widget with same background as app, need widget to be black

嗨,我刚刚设计了一个带有弹出菜单的自定义小部件。这意味着默认情况下我必须扩展 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com