2016-05-20 10 views
0

私はandroid.View.ContextMenuを持っています。これはrecyclerviewで項目をクリックするとポップアップします。それは次のようになりますと分周器:ポップアップメニューのヘッダスタイルを変更する

Screenshot

私の問題は、私は(12345678こちら)ヘッダーの色を変更する方法がわからないこと、です。

PopupMenuStyleを作成しようとしましたが、ヘッダーではなくアイテムのみを変更できます。私は、主テキストの色にheadertextcolorを設定することができますこれにより

が、分周器はまだかかわらず、そのうちの、青まま:私は私のテーマ

EDIT 1の親としてTheme.AppCompat.Light.DarkActionBarを使用します私が追加するアイテム。

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
... 
</style> 

EDIT 2:

コンテキストメニュー-作成

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    MenuInflater inflater = getActivity().getMenuInflater(); 
    inflater.inflate(R.menu.my_menu, menu); 

    menu.setHeaderTitle("12345678"); 
} 

スタイリング

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="AppTheme.NoActionBar" parent="@style/AppTheme"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 

    <item name="android:alertDialogTheme">@style/AppCompatAlertDialogStyle</item> 
</style> 

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <!-- I tried a lot here, but nothing works --> 
</style> 
+2

これを確認してください。これはスタイリングを使用して解決することができます。 http://alexzh.com/tutorials/material-style-for-dialogs-in-android-application/ –

+0

@Karlあなたのコードを表示できますか? –

+0

http://stackoverflow.com/a/21401181/2826147 –

答えて

0

変更分周器の色:テキストのタイトルの色を変更

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setTitle(R.string.dialog) 
    .setIcon(R.drawable.ic) 
    .setMessage(R.string.dialog_msg); 
Dialog d = builder.show(); 
int dividerId = d.getContext().getResources().getIdentifier("android:id/titleDivider", null, null); 
View divider = d.findViewById(dividerId); 
divider.setBackgroundColor(getResources().getColor(R.color.my_color)); 

public static void brandAlertDialog(AlertDialog dialog) { 
    try { 
     Resources resources = dialog.getContext().getResources(); 
     int color = resources.getColor(...); // your color here 

     int alertTitleId = resources.getIdentifier("alertTitle", "id", "android"); 
     TextView alertTitle = (TextView) dialog.getWindow().getDecorView().findViewById(alertTitleId); 
     alertTitle.setTextColor(color); // change title text color 

     int titleDividerId = resources.getIdentifier("titleDivider", "id", "android"); 
     View titleDivider = dialog.getWindow().getDecorView().findViewById(titleDividerId); 
     titleDivider.setBackgroundColor(color); // change divider color 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
} 
関連する問題