PreferenceScreen закругленные углы

Мне удалось заставить ListView иметь закругленные углы, применив этот рисунок в качестве фона ListView,

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle">

    <solid android:color="@android:color/white" />
    <corners android:radius="10dip"/>     

</shape>

Недавно я узнал о представлении PreferenceScreen, которое значительно облегчает мне жизнь. Тем не менее, я применил рисование к экрану настроек через тему,

<style name="PreferencesTheme">
    <item name="android:windowBackground">@drawable/settingslistshape</item>
</style>

Я правильно добавил тему в манифест, но она ничего не делает. Я также пробовал использовать android:background, но это округляет углы каждого элемента строки. Итак, как мне скруглить углы экрана настроек?

EDIT: Через секунду после публикации этого вопроса я попытался удалить верхнюю PreferenceCategory. Оказывается, это скрывало закругленные края. Хотя я не уверен, что мой макет будет хорошо выглядеть с закругленной верхней частью PreferenceCategory, есть ли способ сделать это?

Я также понял, что округление верхней PreferenceCategory будет округлять только верхнюю часть PreferenceScreen. В нижней части экрана по-прежнему будут острые углы, пока я не прокручу до самого низа представления.


person gsingh2011    schedule 15.03.2012    source источник


Ответы (1)


Похоже, я могу настроить PreferenceCategory следующим образом: Пользовательские заголовки PreferenceCategory

Я отпишусь, если у меня все получится.

РЕДАКТИРОВАТЬ: Вот как я это сделал, я очень рад, что научился делать собственные виджеты. Я использовал это руководство для создания пользовательской категории предпочтений: http://udinic.wordpress.com/2011/08/18/dress-up-your-preferenceactivity/

Вы можете увидеть код здесь: https://github.com/Udinic/SmallExamples/tree/master/CustomPreferenceActivity

Поэтому вместо того, чтобы менять цвет, как он, это мой метод onCreateView,

@Override
protected View onCreateView(ViewGroup parent) {
    View newView = super.onCreateView(parent);

    newView.setBackgroundResource(R.drawable.preferencecategoryshape);

    return newView;

}

и это мой XML-график,

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle">
    <corners android:topLeftRadius="10dip" android:topRightRadius="10dip"/>     

</shape>

Надеюсь, это поможет кому-то!

person gsingh2011    schedule 15.03.2012