Dr line
Dr line

Reputation: 81

How to dynamically set RadioButton size in android

I want to show 10 radioButtons in a horizontal. I've tried to add it in RadioGroup, but after running the application, it doesn't show all the radioButtons.

My UI image :
My Img

On some devices not all of radioButtons are shown.

How can I dynamically set size to radioButton from devices screen width ?

My layout:

<RadioGroup
        android:id="@+id/radioGrp"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/bidStepper_txt"
        android:orientation="horizontal">

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="10" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="9" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="8" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="7" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="6" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="5" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="4" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="3" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1" />

    </RadioGroup>

How can i this?

Upvotes: 4

Views: 1037

Answers (2)

Android Geek
Android Geek

Reputation: 9225

All items shown on screen using give android:layout_weight=".1" to all RadioButton.

android:layout_weight divide the all radio buttons width in equal size according to width of device screen, but there is an issue in layout because in some devices it can be clipped, because some device has less width of screen, to overcome this you can use the horizontal scroll view like below:

 <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <RadioGroup
            android:id="@+id/radioGrp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:orientation="horizontal">

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="10" />

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="9" />

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="8" />

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="7" />

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="6" />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:text="5" />

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="4" />

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="3" />

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2" />

            <RadioButton

                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1" />

        </RadioGroup>
    </HorizontalScrollView>

I hope its work for you.

Upvotes: 2

Revansiddappa
Revansiddappa

Reputation: 726

Here is sample code that will helpful

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context="com.radiobuttonhorizontal_android_examples.com.MainActivity" >



     <RadioGroup
     android:id="@+id/radiogroup"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
     android:layout_centerVertical="true"
     android:layout_centerHorizontal="true" >
     <RadioButton
     android:id="@+id/radioButton1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Android" />

     <RadioButton
     android:id="@+id/radioButton2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="PHP" />

     <RadioButton
     android:id="@+id/radioButton3"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Blogger" />
    </RadioGroup>

     <TextView
     android:id="@+id/textView1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_above="@+id/radiogroup"
     android:layout_centerHorizontal="true"
     android:layout_marginBottom="25dp"
     android:text="Horizontal Radio Buttons"
     android:textAppearance="?android:attr/textAppearanceLarge" />

    </RelativeLayout>

enter image description here

Upvotes: 0

Related Questions