初学Android Fragment

来源:互联网 发布:个人域名邮箱登录 编辑:程序博客网 时间:2024/09/21 09:02

其实昨天就学了一些,开始根本不知道Fragment到底是个什么东东,反复看老师的视频。

个人理解,Fragment相当于Activity中的一个个模块。类似微信的界面,点击微信,展示微信的Fragment,点击通讯录,展示通讯录的Fragment。。。

下面是一个简单的例子:在主布局上,点击按钮,跳转到另个fragment。

注:Fragment要引用v4.app.Fragment

MainActivity:

public class MainActivity extends FragmentActivity {    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);        if(savedInstanceState == null){            getSupportFragmentManager().beginTransaction()                    .add(R.id.container,new PlaceholdeFragment())                    .commit();        }    }}

PlaceholdeFragment
public class PlaceholdeFragment extends Fragment {    public PlaceholdeFragment(){    }    @Override    public View onCreateView(LayoutInflater inflater,ViewGroup container,                             Bundle saveInstanceState){        View rootView  = inflater.inflate(R.layout.fragment_main,container,false);        rootView.findViewById(R.id.btnShowAnotherFragment).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //呈现anotherFragment  首先获取FragmentManager,然后beginTransation开始进行变化,之后将一个新的fragment添加进来,最后提交。                //为何使用replace而不使用add。replace:使用一个新的fragment替换当前,add为直接添加一个新的fragment。因为之前已经有了一个,所以用replace。                getFragmentManager().beginTransaction().replace(R.id.container,new AnotherFragment()).commit();//传主布局的id,和新的fragment            }        });        return rootView;    }}
主Fragment的布局:

<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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    android:orientation="vertical"    tools:context=".MainActivityFragment">    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="呈现另一个Fragement"        android:id="@+id/btnShowAnotherFragment"        android:layout_gravity="center_horizontal" /></LinearLayout>


AnotherFragment:

public class AnotherFragment extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater,ViewGroup container,                             Bundle saveInstanceState){        //初始化布局,需要解析的布局是:R.layout.fragment_another   主布局是:container        View root  = inflater.inflate(R.layout.fragment_another,container,false);        return root;    }}

AnotherFragment布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="this is another fragment"        android:id="@+id/textView" /></LinearLayout>






0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 无法激活触控id怎么办 魅蓝2卡顿怎么办 小米max2玩王者荣耀卡怎么办 小米4玩王者荣耀卡怎么办 华为荣耀7i卡顿怎么办 华为荣耀7卡的怎么办 荣耀8手机有孤独怎么办 红米note4玩游戏卡怎么办 红米note4x玩游戏卡怎么办 华为4c死屏怎么办 华为4c充电很慢怎么办? 华为4c突然死机了怎么办 华为畅玩4c内存不足怎么办 荣耀4c一直亮屏怎么办 华为手机返回键失灵怎么办 荣耀6p死机了怎么办 荣耀6主板烧坏了怎么办 虚拟运营商倒闭了号怎么办 买到二次放号怎么办 新运动鞋鞋穿着有点紧怎么办 一件代发被买家退货后怎么办? 洗了翻毛的鞋子怎么办 猫眼竹芋泡根了怎么办 双线花叶子卷了怎么办 华为云收藏满了怎么办 小米6云空间满了怎么办 华为云存储已满怎么办 苹果云备份空间不足怎么办 oppor9指纹与密码忘记怎么办 oppo显示密码格式不对怎么办 oppo云服务密码忘了怎么办 小米云内存满了怎么办 id储存空间满了怎么办 苹果手机邮箱服务器连接失败怎么办 苹果查看id闪退怎么办 域名卖出去后涉及赌博怎么办 发票认证后对方作废了怎么办 手机在屋里没信号怎么办 百度云上传文件和谐怎么办 收货地址写错了怎么办 阿里巴巴国际版出现加密令牌怎么办