2012-01-02 15 views
7

私は、アプリケーションのタイトルのフラグメントとの内容フラグメントを画面に表示しています。ユーザがタイトルフラグメント内のアイテムをクリックすると、そのフラグメントが作成され、フレームに挿入され、選択されたタイトルがタイトルフラグメント内で強調表示される。Androidフラグメントビューの状態を復元する方法

fragment.addToBackStack()でトランザクションが行われるため、ユーザーがBACKキーをクリックすると、前のフラグメントが復元され、フレームに挿入されます。

トランザクションマネージャがフラグメントを復元するときにビューステートを復元する最適なソリューションは何ですか?

問題は、タイトルフラグメントで前のフラグメント名を強調表示する必要があり、どのフラグメントであるかを知る必要があることです。自分のスタックにビューステートを格納することで解決しました。フラグメントが作成され、トランザクションマネージャリスナを使用してトランザクションのバックスタックを変更して復元するときです。

しかし、これは正しい解決策のようには見えません。

答えて

1

答えの前に、次にコードを追加してください。私の答えは本当にあなたのコードを知らないので、可能な限りあなたを助けない可能性があります。

これは古いですが、私はあなたの質問(およびアプリケーションアーキテクチャ)を正しく理解していると、インターフェイスのケースのように思えます。

例:

コンテンツフラグメントにメンバとしてこのインタフェースを追加:

public class ContentFragment extends Fragment{ 

    public interface onFragmentTitleHighlighted{ 
     public void highLightTitle(String title); 
    } 
} 

とタイトルフラグメントがそれを実装有します。コンテンツフラグメントにタイトルfragmnetを装備し、コンテンツフラグメントのonCreateView(...)コールでhighLightTitle(String title);への呼び出しを追加してください。こうすることで、新しいコンテンツフラグメントが追加されるたびにタイトルが強調表示されます。

関連する問題