Styling custom dialog fragment not working

后端 未结 4 506
忘了有多久
忘了有多久 2021-02-06 14:13

I\'m trying to style all my dialog fragments to look the same in my app. The dialogs coming from my settings fragment are styled exactly the way I want it. For my custom dialo

相关标签:
4条回答
  • 2021-02-06 14:52

    See if this helps - Android appcompat-v7:21.0.0 change material checkbox colors

    In short, try setting android:textColorSecondary.

    0 讨论(0)
  • 2021-02-06 14:55

    Finally got an answer!!!

    It's an issue or bug with AppCompat 22+. Check out link here

    Apparently this was a bug with fragments and widgets weren't getting the material themed in a fragment. It seems they fixed this issue, but the issue still holds in a dialog fragment based on what I'm going through. The problem comes when you use the inflater instance passed to Fragment#onCreateView(). The workaround for now is to instead used the LayoutInflater from getActivity().getLayoutInflater() according to google.

    So I changed my code to:

    View view = getActivity().getLayoutInflater().inflate(R.layout.dialog, null);
    

    from:

    View view = LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.dialoge, null);
    

    All my widgets are now themed. Thanks everyone. Hopes this helps someone else.

    0 讨论(0)
  • 2021-02-06 14:57

    I think you need to add one more item in style of your dialog. android:textColorSecondary will show color of un selected checkbox.

    in your style add it.

    </style>
        <style name="AppTheme.DialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="android:textColorPrimary">@color/PrimaryBackgroundColor</item>
        <item name="colorAccent">@color/ColorBackgroundAccent</item>
         <item name="android:textColorSecondary">#000000</item>
    </style>
    

    It will make un Checked checkbox or toggle button edge color black. you need to change #000000 to color your want to show.

    0 讨论(0)
  • 2021-02-06 15:15

    I believe you need to set the theme on the actual Dialog and not the Fragment

    Use this constructor to create your AlertDialog:

    AlertDialog.Builder(Context context, int theme)
    

    ie

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), theme)
    
    0 讨论(0)
提交回复
热议问题