Domyślnie pole wyboru Androida pokazuje tekst po prawej stronie i pole wyboru po lewej
Chcę pokazać pole wyboru po prawej stronie, a tekst po lewej
jak to osiągnąć?
Domyślnie pole wyboru Androida pokazuje tekst po prawej stronie i pole wyboru po lewej
Chcę pokazać pole wyboru po prawej stronie, a tekst po lewej
jak to osiągnąć?
Odpowiedzi:
Nie mogę wymyślić sposobu na stylizację, ale możesz po prostu ustawić tekst pola wyboru na zero i umieścić TextView po lewej stronie pola wyboru z żądanym tekstem.
Myślę, że jest już za późno, aby odpowiedzieć na to pytanie, ale tak naprawdę jest sposób, aby osiągnąć swój cel. Musisz tylko dodać następujący wiersz do swojego pola wyboru:
android:button="@null"
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
Możesz również użyć dostosowanego do rysowania pola wyboru.
A dla radia Przycisk:
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
A jeśli chcesz to zrobić programowo:
Zdefiniuj układ i nazwij go RightCheckBox i skopiuj następujące wiersze:
<?xml version="1.0" encoding="utf-8"?>
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:text="hello"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"/>
a kiedy chcesz dodać go programowo, wystarczy zawyżyć go do CheckBox i dodać do widoku głównego.
CheckBox cb = (CheckBox)((LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE)).inflate(R.layout.check_right_checkbox,null);
rootView.addView(cb);
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
. Myślę, że to najlepsze rozwiązanie dla pola wyboru po prawej stronie, które do tej pory znalazłem.
android:drawableEnd
oprócz android:drawableRight
(o tej samej wartości).
Możesz to zrobić
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right|center"//or "center_vertical" for center text
android:layoutDirection="rtl"
android:text="hello" />
Wystarczy podążać za linią
android:layoutDirection="rtl"
android:gravity="end|center_vertical"
wyświetlanie tekstu po lewej stronie, ponieważ układ zaczyna się teraz.
Po prostu skopiuj to:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your text:"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
/>
</LinearLayout>
Miłego kodowania! :)
Tekst pola wyboru może nie być wyrównany do lewej strony
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
w jakimś urządzeniu. Może użyć CheckedTextView jako zamiennika, aby uniknąć problemu,
<CheckedTextView
...
android:checkMark="@android:drawable/btn_radio" />
i ten link będzie pomocny: Wyrównaj tekst do lewej, pole wyboru do prawej
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
<android.support.v7.widget.AppCompatCheckBox
android:id="@+id/checkBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layoutDirection="rtl"
android:text="text" />`
Zamiast tego możesz użyćCheckTextView.
http://developer.android.com/reference/android/widget/CheckedTextView.html
Dodanie kolejnej odpowiedzi na to pytanie, która używa CheckedTextView, jeśli ktoś próbuje to zrobić programowo. Ma również opcję używania niestandardowych obrazów dla pola wyboru. I można to zrobić w jednym widoku
final CheckedTextView checkBox = new CheckedTextView(getApplicationContext());
checkBox.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
checkBox.setId(1);
checkBox.setCheckMarkDrawable(android.R.drawable.checkbox_off_background);
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (checkBox.isChecked()){
checkBox.setChecked(false);
checkBox.setCheckMarkDrawable(android.R.drawable.checkbox_off_background);
}else{
checkBox.setChecked(true);
checkBox.setCheckMarkDrawable(android.R.drawable.checkbox_on_background);
}
}
});
checkBox.setTextColor(Color.BLACK);
checkBox.setGravity(Gravity.LEFT);
checkBox.setText("hi");
Z XML, jeśli chcesz zainicjować -
<CheckedTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkMark="@android:drawable/checkbox_off_background"
android:checked="false"
android:text="Hi from xml"/>
Poniższe łącze pokazuje, jak renderować kilka standardowych obiektów widoku systemu Android z animowanym polem wyboru po prawej stronie, ustawiając odpowiedni element do rysowania.
Ustaw tło, aby uzyskać efekt falowania.
[link do strony internetowej z przykładowym polem wyboru po prawej i lewej stronie.] [1] http://landenlabs.com/android/uicomponents/uicomponents.html#checkbox
<Button
android:id="@+id/p2Button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/transparent_ripple"
android:drawableRight="@drawable/checkline"
android:gravity="left|center_vertical"
android:text="Button"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<android.support.v7.widget.AppCompatButton
android:id="@+id/p2Button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/transparent_ripple"
android:drawableRight="@drawable/checkline"
android:gravity="left|center_vertical"
android:text="AppCompatButton"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<TextView
android:id="@+id/p2TextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/transparent_ripple"
android:drawableRight="@drawable/checkline"
android:gravity="left|center_vertical"
android:hapticFeedbackEnabled="true"
android:text="TextView"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<android.support.v7.widget.AppCompatTextView
android:id="@+id/p2TextView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/transparent_ripple"
android:drawableRight="@drawable/checkline"
android:gravity="left|center_vertical"
android:hapticFeedbackEnabled="true"
android:text="AppCompatTextView"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/white" />
<CheckBox
android:id="@+id/p2Checkbox1"
android:layout_width="match_parent"
android:layout_height="@dimen/buttonHeight"
android:background="@drawable/transparent_ripple"
android:button="@null"
android:checked="true"
android:drawableRight="@drawable/checkline"
android:gravity="left|center_vertical"
android:text="CheckBox"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<android.support.v7.widget.AppCompatCheckBox
android:id="@+id/p2Checkbox2"
android:layout_width="match_parent"
android:layout_height="@dimen/buttonHeight"
android:background="@drawable/transparent_ripple"
android:button="@null"
android:checked="true"
android:drawableRight="@drawable/checkline"
android:gravity="left|center_vertical"
android:text="AppCompatCheckBox"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<android.support.v7.widget.AppCompatCheckedTextView
android:id="@+id/p2Checkbox3"
android:layout_width="match_parent"
android:layout_height="@dimen/buttonHeight"
android:background="@drawable/transparent_ripple"
android:checkMark="@drawable/checkline"
android:checked="true"
android:gravity="left|center_vertical"
android:text="AppCompatCheckedTextView"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<!-- android:checkMark="?android:attr/listChoiceIndicatorMultiple" -->
<CheckedTextView
android:id="@+id/p2Checkbox4"
android:layout_width="match_parent"
android:layout_height="@dimen/buttonHeight"
android:background="@drawable/transparent_ripple"
android:checkMark="@drawable/checkline"
android:checked="true"
android:gravity="left|center_vertical"
android:text="CheckedTextView"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<CheckBox
android:id="@+id/p2Checkbox5"
android:layout_width="match_parent"
android:layout_height="@dimen/buttonHeight"
android:background="@drawable/transparent_ripple"
android:checked="true"
android:gravity="center_vertical|end"
android:text="CheckBox"
android:textColor="@android:color/white"
android:textSize="@dimen/buttonTextSize" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/white" />
<ToggleButton
android:id="@+id/p2ToggleButton1"
android:layout_width="match_parent"
android:layout_height="@dimen/buttonHeight"
android:background="@drawable/transparent_ripple"
android:checked="true"
android:drawableRight="@drawable/checkline"
android:gravity="center_vertical|left"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textOff="ToggleButtonOff"
android:textOn="ToggleButtonOn"
android:textSize="@dimen/buttonTextSize" />
<ToggleButton
android:id="@+id/p2ToggleButton2"
android:layout_width="match_parent"
android:layout_height="@dimen/buttonHeight"
android:background="@drawable/transparent_ripple"
android:checked="true"
android:drawableRight="@drawable/btn_check_material_anim"
android:gravity="center_vertical|left"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textOff="ToggleBtnnAnimOff"
android:textOn="ToggleBtnnAnimOn"
android:textSize="@dimen/buttonTextSize" />
Przykładowy checkline.xml (do rysowania, zobacz link do wersji animowanej w drawable-v21)
Przykład transparent_ripple.xml (w drawable-v21)
<!-- Limit ripple to view object, can also use shape such as oval -->
<item android:id="@android:id/mask" android:drawable="@android:color/white" />
<item>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:enterFadeDuration="200"
android:exitFadeDuration="200">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#80c0c000" />
</shape>
</item>
</selector>
</item>
Próbka transparent_ripple.xml (do rysowania, zaznacz tylko brak dostępnych tętnień
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#80c0c000" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" />
</shape>
</item>
Jeśli nie jest to obowiązkowe, CheckBox
możesz po prostu użyć Switch
zamiast tego. Przełącznik domyślnie wyświetla tekst po lewej stronie.
Możesz tego również użyć,
<CheckBox
android:layout_width="match_parent"
android:layout_height="@dimen/button_height_35"
android:text="@string/english"
android:checked="true"
android:paddingEnd="@dimen/padding_5"
android:paddingStart="@dimen/padding_5"
android:layoutDirection="rtl"
android:drawablePadding="@dimen/padding_5"
android:drawableEnd="@drawable/ic_english"
style="@style/TextStyleSemiBold"
android:textSize="@dimen/text_15"
android:button="@drawable/language_selector"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/location_permissions"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@android:color/black" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox
android:id="@+id/location_permission_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="8dp"
android:onClick="onLocationPermissionClicked" />
</RelativeLayout>
</LinearLayout>