Select views, such as an assessment panel

I need something like RatingBar to select the range of months in a year,

If the user can select the march and moves the finger in the direction and is selected. I cannot have something "not selected" in the middle.

To illustrate
Months selected

In this case, the user selected "Jan" and "Abr". I did not find anything specific for this case, so I was wondering if anyone had stumbled upon this, or should I do it manually.

Thanks!:)

+5
source share
2 answers

Well, I finished almost all the code manually. I will post here, so if someone needs the same thing, it will be here. firstly, I have a Google-supported FlexboxLayout that wraps the views on the next line. Then I added all 13 flags to it and set the background and textColor based on StateLists.
View Code:

<com.google.android.flexbox.FlexboxLayout android:id="@+id/fl_cadastrofonterendamensalactivity_months_container" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" app:alignContent="stretch" app:justifyContent="space_around" app:alignItems="center" app:flexWrap="wrap"> <CheckBox android:id="@+id/cb_monthlist_jan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:layout_marginTop="8dp" android:layout_marginBottom="8dp" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_jan" android:textColor="@color/months_textcolor" android:textStyle="bold" /> <CheckBox android:id="@+id/cb_monthlist_fev" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_fev" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_mar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_mar" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_abr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_abr" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_mai" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_mai" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_jun" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_jun" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_jul" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_jul" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_ago" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" app:layout_wrapBefore="true" android:text="@string/cadastro_fonterendamensal_mes_ago" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_set" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_set" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_out" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_out" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_nov" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_nov" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_dez" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_dez" android:textColor="@color/months_textcolor" android:textStyle="bold"/> <CheckBox android:id="@+id/cb_cadastromonthlist_dct" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/months_statelist" android:button="@null" android:gravity="center" android:text="@string/cadastro_fonterendamensal_mes_dct" android:textColor="@color/months_textcolor" android:textStyle="bold"/> </com.google.android.flexbox.FlexboxLayout> 

inside res / color / months.textcolor.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/color_background" android:state_checked="true"/> <item android:color="@android:color/white" android:state_checked="false"/> </selector> 

inside res / drawable / months_statelist.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/checkbox_checked" android:state_checked="true"/> <item android:drawable="@drawable/checkbox_unchecked" android:state_checked="false"/> </selector> 

inside res / drawable / checkbox_checked.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF"/> <corners android:radius="100dp"/> <size android:width="-2dp" android:height="-2dp"/> <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp"/> </shape> 

and inside res / drawable / checkbox_unchecked.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@android:color/transparent"/> <stroke android:width="1dp" android:color="#FFFFFF"/> <corners android:radius="100dp"/> <size android:width="40dp" android:height="40dp"/> <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp"/> </shape> 
+4
source

here are two material-range-bar libraries:

 dependencies { compile 'com.appyvet:materialrangebar:1.3' } 

and range search range:

 dependencies { compile 'com.yahoo.mobile.client.android.util.rangeseekbar:rangeseekbar-library:0.1.0' 

}

You may like this and this . This may not be exactly what you are looking for, but with a little tweaking, I think it will help. I have not tried them yet. Just tried it for you.

+1
source

Source: https://habr.com/ru/post/1268252/


All Articles