Изменить тему ListFragment, чтобы быть отличным от активности?

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

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

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

Я считаю, что я должен использовать 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"/> 

Solutions Collecting From Web of "Изменить тему ListFragment, чтобы быть отличным от активности?"

Попытайтесь получить новый 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 может быть что-то отсутствует.

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

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

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

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

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

ИЛИ

Начните свой фрагмент в новой фрагментации = /