首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置android.support.v7.preference.SeekBarPreference样式

设置android.support.v7.preference.SeekBarPreference样式
EN

Stack Overflow用户
提问于 2017-06-23 02:30:09
回答 1查看 960关注 0票数 2

首先,我对Xamarin和Android的编程非常陌生。我已经创建了一个SeekbarPreference,但是它们的布局不能全部正确显示。值是从盒子里掉下来的(见图)。

我的styles.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<resources>
   <style name="MyTheme" parent="MyTheme.Base">

  </style>

  <style name="MyTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#EC6A1E</item>
    <item name="colorAccent">#EC6A1E</item>
    <item name="toolbarStyle">@style/custom_toolbar</item>
    <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material.Fix</item>
  </style>

  <style name="custom_toolbar" parent="@style/Widget.AppCompat.Toolbar">
        <item name="titleTextColor">#FFFFFF</item>
  </style>

  <style name="PreferenceThemeOverlay.v14.Material.Fix"  parent="PreferenceThemeOverlay.v14.Material">
    <item name="seekBarPreferenceStyle">@style/Preference.SeekBarPreference.Fix</item>
  </style>

  <style name="Preference.SeekBarPreference.Fix">
  </style>
</resources>

这是我的settings.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.preference.PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
  <android.support.v7.preference.SeekBarPreference
          android:id="@+id/preference_range_seek_bar"
          android:layout_height="wrap_content"
          android:key="range"
          android:title="Range"
          android:summary="Here you can set the range of your location"
          android:max="10000"
          android:defaultValue="500" />
    <android.support.v7.preference.SeekBarPreference
          android:key="favRange"
          android:title="Favorite Range"
          android:summary="Here you can set the range of your Favorite location"
          android:max="10000"
          android:defaultValue="500" />
    <android.support.v7.preference.Preference android:title="Title" android:summary="This is the summary">
    </android.support.v7.preference.Preference>

</android.support.v7.preference.PreferenceScreen>

我不明白的是,我如何才能找到可以在SeekBarPreference上使用哪些xml属性来解决这个问题。当我在Google文档中查找时,我在这个SeekBarPreference上找不到xml属性的描述。

我知道我的主题是模糊的,因为我玩了很多次。但当我让它工作时,我会调整这个。

希望有人能帮助我,或者举个例子..

EN

回答 1

Stack Overflow用户

发布于 2017-08-01 08:34:31

遇到了同样的问题。下面是关于运行API 25的仿真器的解决方案:

步骤1,创建一个扩展SeekBarPreference的新类

代码语言:javascript
复制
public class CustomSeekBarPreference extends SeekBarPreference {
  private TextView mSeekBarValueTextView;

  public CustomSeekBarPreference(Context context,
      AttributeSet attributeSet,
      int i, int i1) {
    super(context, attributeSet, i, i1);
  }

  public CustomSeekBarPreference(Context context, AttributeSet attributeSet, int i) {
    super(context, attributeSet, i);
  }

  public CustomSeekBarPreference(Context context, AttributeSet attributeSet) {
    super(context, attributeSet);
  }

  public CustomSeekBarPreference(Context context) {
    super(context);
  }

  @Override
  public void onBindViewHolder(PreferenceViewHolder preferenceViewHolder) {
    super.onBindViewHolder(preferenceViewHolder);
    mSeekBarValueTextView = (TextView) preferenceViewHolder.findViewById(android.support.v7.preference.R.id.seekbar_value);
    if (mSeekBarValueTextView != null) {
      LayoutParams layoutParams = mSeekBarValueTextView.getLayoutParams();
      layoutParams.height = LayoutParams.WRAP_CONTENT;
      mSeekBarValueTextView.setLayoutParams(layoutParams);
    }
  }
}

在您的preferences.xml中,将SeekBarPreference类名替换为自定义类名。

代码语言:javascript
复制
<com.google.xxx.view.CustomSeekBarPreference
        android:key="cacheLimit"
        android:title="@string/setting_cache_limit_title"
        android:dependency="enableCaching"
        android:defaultValue="20"
        android:max="40"/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44706952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档