Android 更改ImageView取决于选项卡
我在一个活动中有2个选项卡片段。一个活动的中心有一个圆形图像视图。当我滑动第一个片段时,我需要显示第一个图像&与使用不同图像的第二个选项卡滑动相同 更新:Android 更改ImageView取决于选项卡,android,tabs,fragment,Android,Tabs,Fragment,我在一个活动中有2个选项卡片段。一个活动的中心有一个圆形图像视图。当我滑动第一个片段时,我需要显示第一个图像&与使用不同图像的第二个选项卡滑动相同 更新: static class ViewPagerAdapter extends FragmentPagerAdapter { public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override
static class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
Bundle bundle = new Bundle();
bundle.putInt("position", position);
switch (position) {
case 0:
imgProfile.setImageResource(R.drawable.login_logo);
return new LogInFragment();
case 1:
imgProfile.setImageResource(R.drawable.add_image);
return new SignUpFragment();
}
return null;
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "LOGIN";
case 1:
return "SIGNUP";
}
return null;
}
}
好了,现在我明白你想做什么了: 首先删除更改图像的所有代码,然后尝试以下操作:
static class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
Bundle bundle = new Bundle();
switch (position) {
case 0:
yourImageView.setImageResource(R.id.yourResource1);
fragment = new LogInFragment();
break;
case 1:
yourImageView.setImageResource(R.id.yourResource2);
fragment = new SignUpFragment();
break;
}
return fragment;
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
String str = "";
switch (position) {
case 0:
str = "LOGIN";
break;
case 1:
str = "SIGNUP";
break;
}
return str;
}
}
这就是你所需要的好了,现在我明白你想做什么了: 首先删除更改图像的所有代码,然后尝试以下操作:
static class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
Bundle bundle = new Bundle();
switch (position) {
case 0:
yourImageView.setImageResource(R.id.yourResource1);
fragment = new LogInFragment();
break;
case 1:
yourImageView.setImageResource(R.id.yourResource2);
fragment = new SignUpFragment();
break;
}
return fragment;
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
String str = "";
switch (position) {
case 0:
str = "LOGIN";
break;
case 1:
str = "SIGNUP";
break;
}
return str;
}
}
这就是您所需要的全部通过在@sasikumar answer中进行一些修改,最终使用以下代码获得了它 我没有在页面上放置onPageScrollStateChanged而是在onPageSelected
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
int i = 0;
if (position == 0) {
Log.e("Tab Position", String.valueOf(position));
imgProfile.setImageResource(R.drawable.login_logo);
} else if (position == 1) {
Log.e("Tab Position", String.valueOf(position));
imgProfile.setImageResource(R.drawable.add_image);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
最后,通过在@sasikumar answer中进行一些修改,使用以下代码获得了它 我没有在页面上放置onPageScrollStateChanged而是在onPageSelected
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
int i = 0;
if (position == 0) {
Log.e("Tab Position", String.valueOf(position));
imgProfile.setImageResource(R.drawable.login_logo);
} else if (position == 1) {
Log.e("Tab Position", String.valueOf(position));
imgProfile.setImageResource(R.drawable.add_image);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
我正在我的应用程序中使用ViewPager。是的……现在我使用的是您编辑的代码@FabioVentureiPastorViewPager.setOnPageChangeListener现在不推荐使用。需要改用ViewPager.addOnPageChangeListener。未获取@sasikumar。。。对于获得相同图像的两个片段,我在我的应用程序中使用了ViewPager。是的…现在我使用的是您编辑的代码@fabioventureipastorViewPager.setOnPageChangeListener现在不推荐使用。需要改用ViewPager.addOnPageChangeListener。未获取@sasikumar。。。对于获得相同图像的两个片段请检查我的答案,它是有效的;)检查我的答案,它有效;)抱歉..在空对象引用上获取“android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.MFFragmentManager”。请显示片段代码,否则,如果您有两个不同的片段,为什么不在创建时设置ImageResource?我在LogInactivity中有LogInFragment和SignUpFragment…图像在LogInactivity中。如何从我的fragment.LogInactivity.imgProfile.setImageResource(R.drawable.add_图像)设置该图像;甚至我已经试过了。现在我也跟着你了。但两个选项卡都只显示了白色圆圈。抱歉..在空对象引用上获取“android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.MFFragmentManager”。请显示片段代码,否则,如果您有两个不同的片段,为什么不在创建时设置ImageResource?我在LogInactivity中有LogInFragment和SignUpFragment…图像在LogInactivity中。如何从我的fragment.LogInactivity.imgProfile.setImageResource(R.drawable.add_图像)设置该图像;甚至我已经试过了。现在我也跟着你。但是两个标签上都只显示了白色的圆圈。