Fragment之7____在Fragment 不能正常显示时显示Activity

如果屏幕可用空间不支持查看与其他碎片并排显示的碎片,  则需要启动一个独立的Activity来显示界面,  

接着前面对Fragment的介绍,在showDetails()  方法, 它用于屏幕为竖屏并且细节碎片无法在标题碎片所在的页面上正常显示时, 就必须实现细节活动DetailActivity


当屏幕为竖屏时, 在这个DetailActivity 设置一个新细节碎片,  为界面提供内容,  这就是在 DetailActivity类 创建DetailFragment 的原因!

DetailsActivity 一个有意思方面是:  从不使用setContentView()设置视图,   其界面是这样创建的:  碎片事务调用add(),  添加碎片的视图容器被 指定为资源android.R.id.content, 这是Activity 的顶级组件容器,因此当将碎片视图添加到此顶级容器时,碎片视图结构将成为活动的唯一的视图, 即碎片会在这个活动内显示

代码如下 :

public class DetailsActivity extends Activity {

    @Override
	public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getResources().getConfiguration().orientation
                == Configuration.ORIENTATION_LANDSCAPE) {
        	/*  如果当前是横屏,这表示MainActivity 曾带标题和文本显示过,
        	 *  所以activity 不再需要,需保证让 MainActivity 完成所有工作  
        	 */
            finish();
            return;
        }
        if(getIntent() != null) {
        	// 这是初始化详情 碎片的另一种方式
            DetailsFragment d = DetailsFragment.newInstance(getIntent().getExtras());
            // 开启Fragment 事务,并增加,提交
            getFragmentManager().beginTransaction().add(android.R.id.content, d).commit();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值