2016-04-07 25 views
0

Action Bar Menu Must Stay Grey Popup Menu Must Stay Grey Widget with same background as app, need widget to be blackAndroid ändern Symbolleiste/Widget Hintergrund Schwarz in ThemeOverlay.AppCompat.Dark.ActionBar

Hallo Ich habe gerade ein eigenes Widget mit einem Popup-Menü entworfen. Dies bedeutet, standardmäßig Ich habe AppCompatActivity zu erweitern und gezwungen bin Theme.AppCompat.NoActionBar oder ThemeOverlay.AppCompat.Dark oder ThemeOverlay.AppCompat.Dark.ActionBar

Die Sache ist zu verwenden, ich möchte das haben Widget, das ich verwendet habe, um die Aktionsleiste schwarz zu ersetzen und das Popup-Menü grau zu halten und das Menü, das durch Drücken des Geräteaktionsmenüs erscheint, grau zu halten. Könnte jemand bitte Beispielcode zur Beschreibung hinzufügen? In dieser Phase wird es mir nicht helfen, weil ich versucht habe, Java zu verwenden und die primären und dunklen Farben im Thema zu ändern. Ich habe auch versucht, mehrere benutzerdefinierte Stile in styles.xml hinzufügen, die ich schließlich auskommentieren und schließlich löschen. Bitte beachten Sie meinen Code unten:

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

Antwort

1

Soweit ich weiß, dass Sie nicht brauchen, die AppCompactActivity zu verlängern, weil Sie eine eigene Toolbar verwenden . Ich kam auf der anderen gleichen Ausgabe letzten Monate und die Art und Weise war ich löste es der AppCompactActivity extention loszuwerden und setzen Sie stattdessen:

public class MainActivity extends Activity 

und zu sehen, wie die App während Styling aussehen würde und Codierung es Sie brauchen um die Vorschau auf AppNoTitleBarFullScreen auszuwählen.

auch auf Ihrem OnCreate() Methode müssen Sie Folgendes hinzufügen:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.Your_Activity); 
     ... 
} 

Und auf Ihre Stile XML-Datei fügen Sie den folgenden:

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

Ich glaube, das ist es ... bitte jemand korrigiere mich, wenn ich falsch liege

+0

@JqueryNinja wie ich sagte auf meine Antwort, ich kam über das gleiche Problem vor einer Woche oder so und es löste mein Problem, vielleicht vielleicht haben Sie einen Bug woanders. Vielleicht ist jemand anderer bereit, dir von nun an zu helfen. Viel Glück und alles Gute! –

+0

Ihre Antwort bringt Licht, aber es musste noch viel getan werden. Vielen Dank! – iOSAndroidWindowsMobileAppsDev

Verwandte Themen