RadioButton focus background shape












0















I want to add focus ripple effect to whole RadioButton, but there is something strange is happening to it when I try to use ripple effect with highlight. In the picture, left is what I get and right is what I want:



RadioBtton example



background_drawable:



<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/colorAccent">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"/>
</shape>
</item>
</ripple>


styles.xml



<style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
<item name="android:background">@drawable/radio_button_background</item>
</style>


This happens only If I try to use ripple effect and not if I try to use only shape with selector and state_focused=true as background. For now my workaround is to use warpper View class for RadioButton and set background into it. Is there any way to get background as in the picture but without any additional code? Thanks.










share|improve this question





























    0















    I want to add focus ripple effect to whole RadioButton, but there is something strange is happening to it when I try to use ripple effect with highlight. In the picture, left is what I get and right is what I want:



    RadioBtton example



    background_drawable:



    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/colorAccent">
    <item android:id="@android:id/mask">
    <shape android:shape="rectangle">
    <solid android:color="@android:color/white"/>
    </shape>
    </item>
    </ripple>


    styles.xml



    <style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
    <item name="android:background">@drawable/radio_button_background</item>
    </style>


    This happens only If I try to use ripple effect and not if I try to use only shape with selector and state_focused=true as background. For now my workaround is to use warpper View class for RadioButton and set background into it. Is there any way to get background as in the picture but without any additional code? Thanks.










    share|improve this question



























      0












      0








      0








      I want to add focus ripple effect to whole RadioButton, but there is something strange is happening to it when I try to use ripple effect with highlight. In the picture, left is what I get and right is what I want:



      RadioBtton example



      background_drawable:



      <ripple xmlns:android="http://schemas.android.com/apk/res/android"
      android:color="@color/colorAccent">
      <item android:id="@android:id/mask">
      <shape android:shape="rectangle">
      <solid android:color="@android:color/white"/>
      </shape>
      </item>
      </ripple>


      styles.xml



      <style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
      <item name="android:background">@drawable/radio_button_background</item>
      </style>


      This happens only If I try to use ripple effect and not if I try to use only shape with selector and state_focused=true as background. For now my workaround is to use warpper View class for RadioButton and set background into it. Is there any way to get background as in the picture but without any additional code? Thanks.










      share|improve this question
















      I want to add focus ripple effect to whole RadioButton, but there is something strange is happening to it when I try to use ripple effect with highlight. In the picture, left is what I get and right is what I want:



      RadioBtton example



      background_drawable:



      <ripple xmlns:android="http://schemas.android.com/apk/res/android"
      android:color="@color/colorAccent">
      <item android:id="@android:id/mask">
      <shape android:shape="rectangle">
      <solid android:color="@android:color/white"/>
      </shape>
      </item>
      </ripple>


      styles.xml



      <style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
      <item name="android:background">@drawable/radio_button_background</item>
      </style>


      This happens only If I try to use ripple effect and not if I try to use only shape with selector and state_focused=true as background. For now my workaround is to use warpper View class for RadioButton and set background into it. Is there any way to get background as in the picture but without any additional code? Thanks.







      android view themes android-radiobutton android-radiogroup






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 20 '18 at 16:26









      Fantômas

      32.7k156389




      32.7k156389










      asked Nov 20 '18 at 16:16









      don11995don11995

      10213




      10213
























          1 Answer
          1






          active

          oldest

          votes


















          0














          The solution is to set the button attribute to null and set the drawableStart attribute in styles for the radio button:



          <style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
          <item name="android:button">@null</item>
          <item name="android:drawableStart">@drawable/radio_button_selector</item>
          <item name="android:drawablePadding">4dp</item>
          <item name="android:background">@drawable/radio_button_background</item>
          <item name="android:gravity">center_vertical</item>
          <item name="android:paddingStart">8dp</item>
          <item name="android:paddingEnd">8dp</item>
          <item name="android:paddingTop">11dp</item>
          <item name="android:paddingBottom">11dp</item>
          </style>

          <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
          <!-- Customize your theme here. -->
          <item name="radioButtonStyle">@style/RadioButtonStyle</item>
          <item name="android:radioButtonStyle">@style/RadioButtonStyle</item>
          </style>


          After that focus works as aspected and You can add background to the radio button as You want






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53397175%2fradiobutton-focus-background-shape%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            The solution is to set the button attribute to null and set the drawableStart attribute in styles for the radio button:



            <style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
            <item name="android:button">@null</item>
            <item name="android:drawableStart">@drawable/radio_button_selector</item>
            <item name="android:drawablePadding">4dp</item>
            <item name="android:background">@drawable/radio_button_background</item>
            <item name="android:gravity">center_vertical</item>
            <item name="android:paddingStart">8dp</item>
            <item name="android:paddingEnd">8dp</item>
            <item name="android:paddingTop">11dp</item>
            <item name="android:paddingBottom">11dp</item>
            </style>

            <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
            <!-- Customize your theme here. -->
            <item name="radioButtonStyle">@style/RadioButtonStyle</item>
            <item name="android:radioButtonStyle">@style/RadioButtonStyle</item>
            </style>


            After that focus works as aspected and You can add background to the radio button as You want






            share|improve this answer




























              0














              The solution is to set the button attribute to null and set the drawableStart attribute in styles for the radio button:



              <style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
              <item name="android:button">@null</item>
              <item name="android:drawableStart">@drawable/radio_button_selector</item>
              <item name="android:drawablePadding">4dp</item>
              <item name="android:background">@drawable/radio_button_background</item>
              <item name="android:gravity">center_vertical</item>
              <item name="android:paddingStart">8dp</item>
              <item name="android:paddingEnd">8dp</item>
              <item name="android:paddingTop">11dp</item>
              <item name="android:paddingBottom">11dp</item>
              </style>

              <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
              <!-- Customize your theme here. -->
              <item name="radioButtonStyle">@style/RadioButtonStyle</item>
              <item name="android:radioButtonStyle">@style/RadioButtonStyle</item>
              </style>


              After that focus works as aspected and You can add background to the radio button as You want






              share|improve this answer


























                0












                0








                0







                The solution is to set the button attribute to null and set the drawableStart attribute in styles for the radio button:



                <style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
                <item name="android:button">@null</item>
                <item name="android:drawableStart">@drawable/radio_button_selector</item>
                <item name="android:drawablePadding">4dp</item>
                <item name="android:background">@drawable/radio_button_background</item>
                <item name="android:gravity">center_vertical</item>
                <item name="android:paddingStart">8dp</item>
                <item name="android:paddingEnd">8dp</item>
                <item name="android:paddingTop">11dp</item>
                <item name="android:paddingBottom">11dp</item>
                </style>

                <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
                <!-- Customize your theme here. -->
                <item name="radioButtonStyle">@style/RadioButtonStyle</item>
                <item name="android:radioButtonStyle">@style/RadioButtonStyle</item>
                </style>


                After that focus works as aspected and You can add background to the radio button as You want






                share|improve this answer













                The solution is to set the button attribute to null and set the drawableStart attribute in styles for the radio button:



                <style name="RadioButtonStyle" parent="Widget.AppCompat.CompoundButton.RadioButton">
                <item name="android:button">@null</item>
                <item name="android:drawableStart">@drawable/radio_button_selector</item>
                <item name="android:drawablePadding">4dp</item>
                <item name="android:background">@drawable/radio_button_background</item>
                <item name="android:gravity">center_vertical</item>
                <item name="android:paddingStart">8dp</item>
                <item name="android:paddingEnd">8dp</item>
                <item name="android:paddingTop">11dp</item>
                <item name="android:paddingBottom">11dp</item>
                </style>

                <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
                <!-- Customize your theme here. -->
                <item name="radioButtonStyle">@style/RadioButtonStyle</item>
                <item name="android:radioButtonStyle">@style/RadioButtonStyle</item>
                </style>


                After that focus works as aspected and You can add background to the radio button as You want







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 22 '18 at 10:45









                don11995don11995

                10213




                10213
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53397175%2fradiobutton-focus-background-shape%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Guess what letter conforming each word

                    Port of Spain

                    Run scheduled task as local user group (not BUILTIN)