Customize Check Box Preference

custom checkbox in checkboxPreference - summaryOn & summaryOf

It is necessary to add lines:

android:focusable="false"
android:clickable="false"

to Checkbox item in custom layout xml file.

How to use custom CheckBox in PreferenceScreen on Android

Try this

custom_layout.xml
<?xml version="1.0" encoding="UTF-8"?>
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+android:id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:clickable="true"
android:button="@drawable/android_button"/>

default.xml

<CheckBoxPreference 
android:key="@string/Drop_Option"
android:title="Close after call drop"
android:defaultValue="true"
android:widgetLayout="@layout/custom_layout"/>

Why PreferenceCategory's title & checkBox color is so light & how can I change it?

PreferenceFragment uses the value stored in colorAccent of your app's theme to style widgets and titles by default. To resolve it, create a custom theme in your styles.xml file, and set the colorAccent attribute to an alternate colour:

<style name="theme_name" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/another_color</item>
<item name="colorAccent">@color/yet_another_color</item>
</style>

To apply it to your PreferenceFragment, call getActivity().setTheme(R.style.theme_name) in onCreate() of your PreferenceFragment.

CheckBoxPreference with own layout

Try this as preference_checkbox.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2006 The Android Open Source Project Licensed under the
Apache License, Version 2.0 (the "License"); you may not use this file except
in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
OR CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the License. -->

<!-- Layout for a Preference in a PreferenceActivity. The Preference is able
to place a specific widget for its particular type in the "widget_frame"
layout. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize">

<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginLeft="15dip"
android:layout_marginRight="6dip" android:layout_marginTop="6dip"
android:layout_marginBottom="6dip" android:layout_weight="1">

<TextView android:id="@+android:id/title"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge"
android:ellipsize="marquee" android:fadingEdge="horizontal"
android:textColor="#FF0000" />

<TextView android:id="@+android:id/summary"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title"
android:textAppearance="?android:attr/textAppearanceSmall"
android:maxLines="4" />

</RelativeLayout>

<!-- Preference should place its actual preference widget here. -->
<LinearLayout android:id="@+android:id/widget_frame"
android:layout_width="wrap_content" android:layout_height="match_parent"
android:gravity="center_vertical" android:orientation="vertical" />

</LinearLayout>


Related Topics



Leave a reply



Submit