Я пытаюсь установить флажок с конфигурацией макета ниже.
<android.support.v7.widget.AppCompatCheckBox
android:id = "@+id/gdprOptIn"
fontPath = "fonts/AvenirNextRegular.ttf"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:layout_marginBottom = "@dimen/medium_margin"
android:layout_marginTop = "@dimen/medium_margin"
android:button = "@drawable/checkbox"
android:checked = "false"
android:paddingLeft = "@dimen/default_margin"
android:text = "@string/opt_in_gdpr"
android:textColor = "@color/paper_ink_light"
android:visibility = "gone"
android:gravity = "top"/>
Я не могу найти способ: - Избегайте кликабельности текста. Я могу установить / снять флажок, нажав на текст - Добавьте круглый / квадратный контур вокруг флажка, чтобы сделать его более заметным для использования.
Любая идея ?
Если вы не хотите, чтобы текст был интерактивным, вы можете заменить один тег <CheckBox> на <LinearLayout>, содержащий <CheckBox> и <TextView>. Например, это:
<CheckBox
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:text = "hello world"/>
можно заменить на это:
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal">
<CheckBox
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"/>
<TextView
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_weight = "1"
android:text = "hello world"/>
</LinearLayout>
Если вы хотите обвести флажок вокруг флажка, чтобы он выделялся еще больше, вы можете обернуть его в <FrameLayout> с цветным фоном:
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:gravity = "center_vertical"
android:orientation = "horizontal">
<FrameLayout
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "#fac">
<CheckBox
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"/>
</FrameLayout>
<TextView
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_weight = "1"
android:text = "hello world"/>
</LinearLayout>
Спасибо, единственное, что мой текст - это текст в текстовом представлении, содержащий интерактивный элемент, давайте, мир интерактивен. Я использовал SpannableStringBuilder, чтобы сделать это, но кажется, что он стал неактивным или событие щелчка перехватывается LinearLayout. Я установил LL для кликабельности: false, но все еще не работает