一.用Fragment模拟Tab页面,有时会发生切换时布局重叠问题,具体是当应用在后台运行时,设置更改语言选项或系统不小心强制关闭后,再进入应用会同时显示多个Tab内容,UI界面文字发生重叠。
这是因为再次回到这个app的时候,通过onCreate中的参数savedInstanceState恢复了之前的fragment。此时的FragmentTransaction中的相当于又再次add了fragment进去的,之前保存的fragment也还在。hide()和show()方法对之前保存的fragment已经失效了。所以出现了重叠的现象。
解决方法1:
各个对应的Fragment xml文件设置不透明的背景颜色,掩盖掉其它fragment:android:background="@color/white"
解决方法2:
@Override
public
void
onSaveInstanceState(Bundle outState) {
//super.onSaveInstanceState(outState);//将这一行注释掉,阻止activity保存fragment的状态
}
解决方法3:
Fragment frag[]={new GameFragment(),new LiveFragment(),new DataFragment(),new PersonalFragment()};
FragmentManager fm = getSupportFragmentManager();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mian);
if(savedInstanceState!=null){
//tag为add时的tag
for(int i=0;i<frag.length;i++){
Fragment fragtag = fm.findFragmentByTag("tag"+i);
if (fragtag!=null) {
frag[i]=fragtag;
}
}
}
}
二.viewpager fragment开发滑动的广告banner:
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
import android.app.ActionBar;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.vi