Изменить тему ListFragment, чтобы он отличался от действия? - PullRequest
19 голосов
/ 25 мая 2011

По сути, я хочу установить тему своей деятельности в манифесте следующим образом:

android:theme="@android:style/Theme.Translucent.NoTitleBar"

И я хочу, чтобы моя деятельность загружала ListFragment с темой Theme.Holo.Dialog (определяется в моем собственном стиле), однако я не могу просто вызвать setStyle (....) в своем фрагменте, как мог если бы это был DialogFragment.

Я считаю, что должен иметь возможность использовать ContextThemeWrapper, но у меня возникают проблемы с пониманием вызовов, которые мне нужно сделать. До сих пор в моем onCreateView у меня есть:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    LayoutInflater newInflater = inflater.cloneInContext(new ContextThemeWrapper(getActivity(), R.style.DialogThemeSelector));
    View inflatedView = newInflater.inflate(R.layout.favourites_print, container, false);
    .....

Но это не работает. Заранее спасибо. Питер.

* Редактировать * Стиль публикации:

<style name="DialogThemeSelector" parent="@android:style/Theme.Holo.Dialog"/>

Ответы [ 4 ]

2 голосов
/ 15 апреля 2012

Попробуйте получить новый LayoutInflater вместо преобразования предоставленного, например, так:

Context newContext = new ContextThemeWrapper(getActivity(), R.style.DialogThemeSelector);
LayoutInflater newInflater = (LayoutInflater) newContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View inflatedView = newInflater.inflate(R.layout.favourites_print, container, false);

Если это не сработает, я подозреваю, что в вашем style.

чего-то не хватает.
1 голос
/ 17 апреля 2012

Попробуйте использовать requestWindowFeature (Window.FEATURE_NO_TITLE);вместо android: theme = "@ android: style / Theme.Translucent.NoTitleBar"

И поместите в манифест targetSdkVersion = "14" для использования Theme.Holo.

1 голос
/ 10 апреля 2012

Может быть, я неправильно понимаю, но вы не можете просто установить тему в манифесте для действия, которое содержит фрагмент списка?

Редактировать: после изучения мой лучший совет - взглянуть на источник фрагмента диалога и попытаться повторить поведение в своем собственном фрагменте.

OR

Запустите свой фрагмент с новой фрагментацией = /

1 голос
/ 21 марта 2012

Я просто делаю это наивным способом: я определяю расположение элементов списка в XML, используя атрибут style, и это, похоже, работает.Мои пункты списка не так сильно обеспокоены тем, находятся ли они во фрагменте или нет.Я не пробовал стилизовать сам фрагмент, но поскольку элементы списка - единственное в нем, стилизация кажется достаточной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...