Я смог получить ListView, чтобы иметь закругленные углы, применяя этот drawable в качестве фона 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. В нижней части экрана все еще будут острые углы, пока я не перейду к самому дну представления.
Похоже, я могу настроить PreferenceCategory следующим образом: Custom PreferenceCategory Headings
Я отправлю сообщение, если мне удастся.
EDIT: Вот как я это сделал, я очень рад, что узнал, как создавать пользовательские виджеты. Я использовал этот учебник для создания пользовательской 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 drawable,
<?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>
Надеюсь, что кто-то поможет!