最终效果展示:

项目介绍:

通过碎片的方式显示标题列表和内容,其中也牵涉到横竖屏的知识

项目代码下载:http://files.cnblogs.com/files/Laopengblog/%E7%A2%8E%E7%89%87and%E6%A8%AA%E7%AB%96%E5%B1%8F.rar

编写过程:

一.创建用于显示标题的碎片

先创建一个 fragment 的包用来放 碎片

然后把MainActivity 继承改为 继承V4包的 FragmentActivity

  1.创建一个 显示标题的碎片 (要继承 V4 包的 Fragment)

  2.给碎片上画控件 这里只是显示标题,我们用一个ListView就行

  3.创建 onCreateView 初始化 方法

  4.创建一个适配器 这里我们用一个 ArrayAdapter<String>

  5.初始化一下数据 这里数据太多了 我直接单独写出来的 创建一个Model的包 里面用来放标题和主内容的数据 下图所示:

  6.把Activity单独保存出来 后面的代码要经常用到

private FragmentActivity activitys;

  7.初始化适配器 并 设置数据

  8.将ListView于适配器进行绑定

  9.在主布局中插入一个碎片

com.yuxuan.sphs.fragment.TitleFragment 即为刚才写好的碎片
<fragment
android:id="@+id/fm_title"
android:name="com.yuxuan.sphs.fragment.TitleFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />

这样我们标题的碎片就完成了 现在跑起来就可以看到标题了

以下是第一步的所有代码 (布局代码参考上面的第九条)

package com.yuxuan.sphs.fragment;

import com.yuxuan.sphs.R;
import com.yuxuan.sphs.activity.ContentActivity;
import com.yuxuan.sphs.model.Data; import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class TitleFragment extends Fragment { private ListView lv; private FragmentActivity activitys; private ArrayAdapter<String> adapter; private String[] datas = Data.TITLES; @Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { activitys = this.getActivity();
lv = new ListView(activitys); adapter = new ArrayAdapter(activitys,
android.R.layout.simple_list_item_1, datas); lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) { String content = Data.CONTENTS[position]; if (activitys.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
ContenFragment cf = (ContenFragment) activitys
.getSupportFragmentManager().findFragmentById(
R.id.fm_content);
cf.setTvText(content);
} else {
Intent intent = new Intent(activitys, ContentActivity.class); intent.putExtra("content", content); activitys.startActivity(intent);
} }
}); return lv;
}
}

创建用于显示标题的碎片

二.设置标题的点击事件弹出一个内容的碎片

  1.在标题碎片中设置ListView的点击事件

  2.把点击的标题获取到的对应的数据通过Intent传递给内容的Activity

代码参考上面的 “创建用于显示标题的碎片”

三.创建内容Activity以及碎片

  1.创建一个内容Activity (ContentActivity) 继承V4包的 FragmentActivity

  2.创建内容的碎片 ContentFragment

  3.在内容的布局文件中加入一个碎片 指定为 ContentFragment

  4.在内容碎片上创建一个TextView用于显示内容

  5.取到从标题碎片传过来的内容 注意这里我们是在ContentActivity上取

  6.设置内容给TextView

四.横竖屏的判断与处理  

  1.在 res 文件夹下创建一个 layout-land 的文件夹 然后将主布局文件Copy 一份进来 然后跑起来设置为横屏试试看~

  2.我们可以看到展示效果图 横屏的时候是标题和内容都同时显示的 这时候我们在这里定义两个 碎片即可 布局代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.huarui.my12android2801.activity.MainActivity" > <fragment
android:id="@+id/fm_title"
android:name="com.yuxuan.sphs.fragment.TitleFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" /> <fragment
android:id="@+id/fm_content"
android:name="com.yuxuan.sphs.fragment.ContenFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" /> </LinearLayout>

横屏布局

  3.判断横竖屏 这里我们在点击事件时判断即可 代码参考上面的 “创建用于显示标题的碎片”

总结:此篇主要是演示了碎片的用法和横竖屏的用法,碎片我会另外写一篇详细的文章用来介绍!

Android 横竖屏+碎片的应用的更多相关文章

  1. Android横竖屏切换及其对应布局加载问题

    第一,横竖屏切换连带横竖屏布局问题: 如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局. 可以通过以下两种方法来切换布局: 1)在res目录下建立layout-land ...

  2. Android横竖屏切换小结

    Android横竖屏切换小结 (老样子,图片啥的详细文档,可以下载后观看 http://files.cnblogs.com/franksunny/635350788930000000.pdf) And ...

  3. 【转】Android横竖屏切换问题

    Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 ...

  4. Android横竖屏切换及其相应布局载入问题

    第一.横竖屏切换连带载入多屏布局问题: 假设要让软件在横竖屏之间切换.因为横竖屏的高宽会发生转换,有可能会要求不同的布局. 能够通过下面两种方法来切换布局: 1)在res文件夹下建立layout-la ...

  5. Android横竖屏切换处理

    Android横竖屏要解决的问题应该就两个: 1.布局问题:2.重新载入问题   一.布局问题: 如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你 ...

  6. Android横竖屏切换总结

    Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 ...

  7. Android横竖屏布局总结

      Android横竖屏要解决的问题应该就两个:一.布局问题;二.重新载入问题. 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 AndroidManifest.xml中找到你 ...

  8. 我的Android进阶之旅------>Android横竖屏切换总结

    在默认情况下当屏幕从竖评变到横屏时会触发 onConfigurationChanged 事件 在默认情况下会重新加载画面并显示和横屏一样的画面,这样会有2个问题,   * 布局问题,在竖屏 显示的布局 ...

  9. Android横竖屏切换解决方案

    Android横竖屏切换解决方案 首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidde ...

随机推荐

  1. GJM : Unity3D HIAR -【 快速入门 】 四、创建 Hello World

    创建 Hello World 本文将介绍如何在 Windows 系统下,使用 HiAR SDK 创建一个简单的 AR 应用.在开始之前,请先完成下列准备工作: 注册 HiAR 帐户 获取 AppKey ...

  2. springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制【转】

    项目结构:   1.maven项目的pom中引入shiro所需的jar包依赖关系 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  3. extend

    这段时间在写一个预览图片的插件, 被我老大说了无数次了,不多说啥,说多了都是泪 昨天看着我的代码他说你用了extend,那你知道是什么意思吗 我只知道是扩展的意思,瞬间觉得自己弱爆了 真的 然后今天看 ...

  4. Java 中的集合接口——List、Set、Map

    Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组 ...

  5. 解决安装rpm包依赖关系的烦恼 - yum工具介绍及本地源配置方法

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  6. Oracle中如何实现Mysql的两表关联update操作

    在看<MySQL 5.1参考手册>的时候,发现MySQL提供了一种两表关联update操作.原文如下: UPDATE items,month SET items.price=month.p ...

  7. Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

    子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中.   子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...

  8. android 设颜色透明值

    如:把    <color name="line_gray_tran">#8d8d8d</color> 要设70%的透明值 计算方法:255*0.75=19 ...

  9. java中可定制的序列化过程 writeObject与readObject

    来源于:[http://bluepopopo.iteye.com/blog/486548] 什么是writeObject 和readObject?可定制的序列化过程 这篇文章很直接,简单易懂.尝试着翻 ...

  10. 关于Retinex图像增强算法的一些新学习。

    最近再次看了一下IPOL网站,有一篇最近发表的文章,名字就是Multiscale Retinex,感觉自己对这个已经基本了解了,但还是进去看了看,也有一些收获,于是抽空把他们稍微整理了下,原始文章及其 ...