2016-05-15 6 views
0

2つのフラグメントfragment_one(fragmentOne.class)とfragment_two(fragmentTwo.class)があります。これらのフラグメントは、ActivityMain.class内に表示されます。現在表示されているフラグメントに応じて、親アクティビティの背景イメージを変更する方法

fragment_oneが表示されているときに、画像AをActivityMain.classの背景として設定します。 fragment_twoは(私はテストとしてボタンを使用私は断片を使用していないとき、私はActivityMain.classの背景を交換し、設定することができますActivityMain.class

の背景として画像Bを設定する表示されている

)....しかし、私はこれをフラグメントのために修正すると、それを動作させることはできません。あなたは私のActivityMain.class

public class ActivityMain extends FragmentActivity { 

//set variables for use of pageradapter and swipe screen 
MyPageAdapter adapter; 
ViewPager pager; 
Context context = this; 
LinearLayout swipeHomeScreen; 


protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.content_activity_nav); 

    //Implement the adapater for the swipe screen on launch page and circle indicator 
    adapter = new MyPageAdapter(getSupportFragmentManager()); 
    pager = (ViewPager) findViewById(R.id.pager); 
    pager.setAdapter(adapter); 
    swipeHomeScreen = (LinearLayout) findViewById(R.id.swipeHomeScreen); 

} 

}

は、ここで私は、私はセットを渡す/の背景画像を共有しようとしています私の断片の一つのコードを列挙されている表示されますここに記載されて

ActivityMain.class ...

public class ActivityNavSwipeTwo extends Fragment { 

ActivityMain main; 

public void onAttach(Activity activity) { 
    main = (ActivityMain) activity; 
}; 

public static ActivityNavSwipeTwo newInstance() { 
    ActivityNavSwipeTwo fragment = new ActivityNavSwipeTwo(); 
    return fragment; 
} 

public ActivityNavSwipeTwo() { 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View root = inflater.inflate(R.layout.fragment_two, null); 
    main.swipeHomeScreen.setBackgroundResource(R.drawable.Image2); 
    return root; 
} 

}

私の活動INFLフラグメントはうまくいきますが、背景イメージは変わりません。

ターゲットapi 23のためにこれを実装するにはどうすればよいですか?

ご協力いただきありがとうございます。

答えて

0

アクティビティにviewpager.onpagechangedlistenerを実装します。次に、作成されたメソッドにview.setonpageselecterlistener(this)を追加します。ページ選択されたメソッドに実装された選択されたフラグメントを制御することができます

0

あなたのアクティビティには親レイアウト(相対/線形)があります。したがって、以下を実行する必要があります。

  • 作成されていない場合、親レイアウトのIDを作成します。
  • フラグメントからアクセスし、その親レイアウトの背景色を変更します。

    フラグメントのonCreateView()メソッドでこれを記述します。

    relativeLayout = (RelativeLayout)getActivity().findViewById(R.id.relativelayout); relativeLayout.setBackground(background);

関連する問題