19. .9图片
在drawBitmap中使用.9图片时,需要用NinePatch,否则不生效
20.fragment重叠问题
出现原因:由于翻转屏幕或内存不足导致activity被销毁,fragmentactivity会自动保存fragment但是视图的可见状态未保存,所以当activity重新创建的时候,创建和恢复就会出现2个fragment重叠的情况
解决方法:
1.通过在onSaveInstanceState中将保存的信息制空即可
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable("android:support:fragments", null);
}
2.自己保存fragment的显示状态
public class BaseFragment extends Fragment {
private static final String STATE_SAVE_IS_HIDDEN = "STATE_SAVE_IS_HIDDEN";
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
...
if (savedInstanceState != null) {
boolean isSupportHidden = savedInstanceState.getBoolean(STATE_SAVE_IS_HIDDEN);
FragmentTransaction ft = getFragmentManager().beginTransaction();
if (isSupportHidden) {
ft.hide(this);
} else {
ft.show(this);
}
ft.commit();
}
@Override
public void onSaveInstanceState(Bundle outState) {
...
outState.putBoolean(STATE_SAVE_IS_HIDDEN, isHidden());
}
}