Android Fragment 切换时布局重叠/开发滑动广告Banner

在使用Fragment模拟Tab页面时,可能会遇到切换后布局重叠的问题,特别是在应用被系统后台处理或语言切换后。这是因为onCreate中恢复了之前的Fragment实例,导致多个Fragment同时显示。解决方法包括设置Fragment背景颜色或在onSaveInstanceState中处理。另外,讲解了如何在ViewPager中开发滑动广告Banner,通过设置padding和clipToPadding属性实现主Banner与两侧Banner的展示。
摘要由CSDN通过智能技术生成

一.用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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值