安卓开发2——碎片Fragment的使用

本实验在上一次实验基础上进行:安卓开发1——活动与Intent的使用

实验内容:

1、创建一个横屏界面

方法:在layout目录旁再创建一个同级别的layout-land目录,将activity_list.xml布局文件复制到layout-land中即可

2、新增一个碎片DetailFragment,将新闻详情制作成碎片

3、修改新闻详情的布局,将其中的控件用DetailFragment替换

4、修改新闻列表横屏布局,将列表右边设计为一个新闻详情

5、在AVD中可实现模拟横、竖屏测试的功能,只要该活动设计有layout和layout-land两种布局,那么横屏和竖屏时则会加载不同的布局文件。


                                

7、手机在横屏或竖屏时会加载相应的布局文件,但两种布局文件均使用同一个类文件。修改ListActivity类代码,先判断屏幕状态,若横屏,则点击列表时将新闻内容填充至右侧碎片;若竖屏,则点击列表时打开详情活动显示新闻内容。

判断横屏或竖屏方法:

扫描二维码关注公众号,回复: 4419192 查看本文章

Configuration mConfiguration = MainActivity.this.getResources().getConfiguration();

int ori = mConfiguration.orientation;

if (ori == mConfiguration.ORIENTATION_LANDSCAPE) {

Toast.makeText(MainActivity.this, "现在是横屏", Toast.LENGTH_LONG).show();

} else if (ori == mConfiguration.ORIENTATION_PORTRAIT) {

Toast.makeText(MainActivity.this, "现在是竖屏", Toast.LENGTH_LONG).show();

}

实验过程:

1、创建横屏界面:创建layout-land目录存放横屏界面,将layout文件中的activity_list.xml布局文件复制到layout-land中,如下。

                                                                             

2、创建一个碎片DetailFragment,同时会产生一个对应的布局fragment_detail.xml。在DetailFragment中修改代码,用静态变量方法获取数据。

                                             

3、修改碎片布局,可直接复制原ativity_detail.xml中的布局,将其作为新闻详情页,之后会显示于界面右方。

4、修改layout-land目录下的activity_list.xml新闻列表布局,在其右边动态添加碎片,添加方法如下,此处将会显示上一步的碎片布局。

                                   

5、在TextView点击事件中添加关键性代码对手机横竖屏状态进行判断,并分别进行不同的布局展示,竖屏时打开第二个活动页并用Intent传递数据,横屏时则在右方启动碎片展示新闻详情并用静态变量方法传递数据,关键性代码和效果图如下。

                           

                                                                                                   手机为竖屏状态时:

                                              

                                                                                                 手机切换为横屏状态时:

                              

猜你喜欢

转载自blog.csdn.net/h2503652646/article/details/84875119