2010-08-31 48 views
4

我有一個定義,如下面的例子一些優先選擇屏幕的XML文件文字大小

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"   
    android:key="root_preferencescreen"> 

    <PreferenceScreen android:key="general_sett" android:title="general settings" /> 
    .... 

    <PreferenceScreen android:key="extras_sett" android:title="extras settings" /> 

</PreferenceScreen> 

我希望能夠提高個人偏好屏幕的文本的字體大小,但由於在首選項屏幕中沒有android:textsize標籤,我不知道該如何實現!

回答

7

你可以說,看起來像這樣一個TextView佈局的xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    style="?android:attr/listSeparatorTextViewStyle" 
    android:textColor="@android:color/white" 
    android:id="@+android:id/title" 
/> 

,並設置自己的喜好類型的佈局設計在你的preferences.xml這樣的:

<PreferenceCategory 
    android:title="Category Title" 
    android:layout="@layout/pref_category" 
/> 

只要TextView有id @ + android:id/title,你可以使佈局看起來像你想要的。還有一種方法可以用我還沒弄明白的樣式來做到這一點。

+0

真棒...釘了它! :) – Jason 2017-03-27 16:58:08

7

您只需將主題中添加android:textSize喜好屏幕:

e.g:

<style name="settingsTheme" parent="PreferenceThemeOverlay"> 
    <item name="colorAccent">@color/color_ten</item> 
    <item name="android:background">@color/colorPrimaryLight</item> 
    <item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item> 
    <item name="android:textColorPrimary">@color/colorTextBodyLight</item> 
    <item name="android:textColorSecondary">@color/colorTextCaptionLight</item> 
    <item name="android:textSize">14sp</item> 
</style> 

SettingsActivity類:

public class SettingsActivity extends AppCompatActivity { 
private Toolbar toolbar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_settings); 

    toolbar = (Toolbar)findViewById(R.id.toolbar_settings); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportFragmentManager().beginTransaction() 
      .replace(R.id.bodylayout, new PrefsFragment()) 
      .commit(); 


} 

@Override 
protected void onPause() { 
    super.onPause(); 
} 
} 

PrefsFragment類:

public class PrefsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { 

    @Override 
    public void onCreatePreferences(Bundle bundle, String s) { 

    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     final Context myContext = this.getActivity(); 
    //set your theme 
     myContext.setTheme(R.theme.settingsTheme); 

     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.settingspreference); 
    //do other stuffs 
     } 
    //..... 
     }