我有两个片段,fragment_one(fragmentOne.class)和fragment_two(fragmentTwo.class)。这些片段显示在ActivityMain.class中。
当我显示fragment_one时,我想将Image A设置为ActivityMain.class的背景。
当我显示fragment_two时,我想将Image B设置为ActivityMain.class的背景
当我不使用片段时(我使用按钮作为测试),我可以交换并设置ActivityMain.class的背景....但是,当我为片段修改它时,我无法使其工作。
在此列出,您将看到我的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;
}
}
我的活动可以很好地膨胀碎片,但背景图像不会改变。
我怎样才能为目标api实现这个???
感谢您的支持。
答案 0 :(得分:0)
在您的活动中实施viewpager.onpagechangedlistener。然后在oncreated方法中添加view.setonpageselecterlistener
(this)。您可以控制在页面选择的方法
答案 1 :(得分:0)
您的活动肯定有任何父布局(相对/线性)。所以你必须做以下事情:
从片段访问并更改该父布局的背景颜色。
在Fragment的relativeLayout = (RelativeLayout)getActivity().findViewById(R.id.relativelayout);
方法中写下这个。
relativeLayout.setBackground(background);
{{1}}