19

基本的に、マニフェストでアクティビティのテーマを次のように設定したいと考えています。

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

そして、アクティビティでテーマ Theme.Holo.Dialog (独自のスタイルで定義) を使用して ListFragment をロードする必要がありますが、フラグメントで 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

4 に答える 4

2

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

于 2012-04-15T07:49:07.627 に答える
1

requestWindowFeature(Window.FEATURE_NO_TITLE); を使用してみてください。Android の代わりに: theme="@android:style/Theme.Translucent.NoTitleBar"

そして、Theme.Holo を使用するためにマニフェスト targetSdkVersion="14" を追加します。

于 2012-04-17T02:55:41.367 に答える
1

私は単純な方法でそれを行いstyleます。属性を使用して XML でリスト項目のレイアウトを定義すると、うまくいくようです。私のリスト項目は、それらがフラグメントであるかどうかにあまり関心がありません。フラグメント自体のスタイリングは試していませんが、リスト アイテムだけが含まれているため、スタイリングは十分なようです。

于 2012-03-21T09:43:38.560 に答える
1

誤解かもしれませんが、リストフラグメントを保持するアクティビティのマニフェストにテーマを設定することはできませんか?

編集:それを調べた後、私の最善のアドバイスは、dialogfragment のソースを調べて、独自の customfragment で動作を再現することです。

また

新しいfragmentactivity =/でフラグメントを開始します

于 2012-04-10T15:51:05.877 に答える