質問

IはPreferenceActivityの優先リストに表示されたカスタム・プリファレンス(カスタムレイアウト即ち嗜好)を行いました。

レイアウトがコードで作成されています。問題は、コードで作成されたのTextViewのフォントがAndroidの標準の好みのフォントよりも多少違って見えるということです。

ソリューションは、私のTextViewにAndroidの好みのスタイル属性を適用することですので。それぞれのスタイルは preferenceScreenStyle のか<のhref = "HTTPでなければなりません:。//developer.android.com/reference/android/R.attr.html#preferenceStyle」のrel = "noreferrer"> preferenceStyle を(私はよく分からない)

私の問題は、私は、コードでそれらを設定することができますので、私は、Androidの標準スタイル属性を読み出す方法を見つけ出すことはできませんです。

役に立ちましたか?

解決

私は同じ問題を抱えてきましたが、私はいくつかのモバイルデバイス、HTCサファイアとサムスンギャラクシーSが、私のHTC欲望HDとi'have問題のためにそれを修正しました。あなたはandroid_SDK_resurces /レイアウト/ preference.xmlで標準の好みのスタイルを見ることができます。余白、テキストのサイズがありますが、....

他のヒント

ネクロのための謝罪が、私は好みのスタイリングについてのSOの質問にこの答えを見つけることができませんでした。デフォルトの優先は今layout/preference_materialを使用しています。私は最終的に答えを見つけました。あなたはそれとAndroidのソース<のhref =「https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/layout」のrel = "nofollowをで他のより具体的なレイアウトを見ることができます「>ここを。念のため、以下のコピーしたリンクの区切ります:

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 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="?attr/listPreferredItemHeightSmall"
    android:gravity="center_vertical"
    android:paddingStart="?attr/listPreferredItemPaddingStart"
    android:paddingEnd="?attr/listPreferredItemPaddingEnd"
    android:background="?attr/activatedBackgroundIndicator"
    android:clipToPadding="false">
    <LinearLayout
        android:id="@+id/icon_frame"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="-4dp"
        android:minWidth="60dp"
        android:gravity="start|center_vertical"
        android:orientation="horizontal"
        android:paddingEnd="12dp"
        android:paddingTop="4dp"
        android:paddingBottom="4dp">
        <com.android.internal.widget.PreferenceImageView
            android:id="@+id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxWidth="48dp"
            android:maxHeight="48dp" />
    </LinearLayout>
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingTop="16dp"
        android:paddingBottom="16dp">
        <TextView android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:textAppearance="?attr/textAppearanceListItem"
            android:ellipsize="marquee" />
        <TextView android:id="@+id/summary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/title"
            android:layout_alignStart="@id/title"
            android:textAppearance="?attr/textAppearanceListItemSecondary"
            android:textColor="?attr/textColorSecondary"
            android:maxLines="10"
            android:ellipsize="end" />
    </RelativeLayout>
    <!-- Preference should place its actual preference widget here. -->
    <LinearLayout android:id="@+id/widget_frame"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="end|center_vertical"
        android:paddingStart="16dp"
        android:orientation="vertical" />
</LinearLayout>

私はEditTextPreference例えばのような標準的な好みで使用されるレイアウトリソースと現在のカスタム好みのレイアウトリソースを置き換えることによって、この問題を解決するために管理してきましたここでTimePreferenceは、カスタムの好みであることに注意してくださいは、コード例です。

    TimePreference wake_time = (TimePreference)findPreference("wake_time");
    EditTextPreference exercise = (EditTextPreference)findPreference("exercise");
    int r = exercise.getLayoutResource();
    wake_time.setLayoutResource(r);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top