Fragment动态添加控件(Button/Layout/...)
来源:互联网 发布:日记本软件电脑版 编辑:程序博客网 时间:2024/06/06 19:25
最近在研究Andriod5.0系统Settings源码的修改,从主界面进去Settings中大部分都是使用Fragment,Fragment的页面修改是通过重修onCrearteCiew()方法来实现的,下面是我把View的高度修改为800像素,预留部分空间来添加其他的控件,例子Button,Layout等等
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = super.onCreateView(inflater, container, savedInstanceState); /*定义LayoutParams 为了获得当前View的属性*/ ViewGroup.LayoutParams lpLayoutParams = rootView.getLayoutParams(); //设置View的高度,也可以设置其他属性 lpLayoutParams.height = 800; rootView.setPadding(50, 50, 50, 50); //LayoutParams 属性赋予Fragment当前的View rootView.setLayoutParams(lpLayoutParams); return rootView; }
通过重写onActivityCreated,自己定义了一个RelativeLayout ,并且在RelativeLayout 中添加Button
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //定义了一个RelativeLayout ,LayoutParams 是控件属性 FrameLayout.LayoutParams returnLayoutparams = new FrameLayout. LayoutParams(LayoutParams.MATCH_PARENT, h_buttonscreen); returnLayoutparams.gravity = Gravity.BOTTOM|Gravity.RIGHT; RelativeLayout returnLayout = new RelativeLayout(getActivity()); returnLayout.setPadding(50, 10, 50, 50); //这里是我自己背景资源 returnLayout.setBackgroundResource(R.drawable.beijing); //定义了一个Button, FrameLayout.LayoutParams returnButtonparams = new FrameLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); final Button returnbutton = new Button(getActivity()); returnbutton.setBackgroundResource(R.drawable.flst_return_button); returnbutton.setLayoutParams(returnButtonparams); //Layout中添加Button returnLayout.addView(returnbutton); //View中添加layout getActivity().addContentView(returnLayout, returnLayoutparams); returnbutton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO 自动生成的方法存根 Toast.makeText(getActivity(), "返回", Toast.LENGTH_LONG).show(); } }); }
//这样你的Fragment页面就可以根据自己需求来写。
修改页面,就得知道屏幕的大小,这样的话,你可以更好的来布局页面,通过以下代码可以实现获得屏幕宽度和高度
DisplayMetrics dm =getResources().getDisplayMetrics(); int w_screen = dm.widthPixels; int h_screen = dm.heightPixels;
以上纯属个人理解,如有误区,请指出
1 0
- Fragment动态添加控件(Button/Layout/...)
- Android 动态添加布局(layout)和控件(Widget)
- ADP.NET 动态添加button(服务器控件)
- 动态添加 button 控件及事件
- 动态添加 button 控件及事件
- 动态添加控件,如ImageView、Button等
- 试水Fragment(2)-动态添加Fragment
- layout里动态添加控件,并自动换行
- C# 动态添加Button
- 动态添加button按钮
- 动态创建BUTTON控件
- Fragment布局中动态添加显示新的layout.xml文件
- Fragment动态添加内容
- 动态添加Fragment碎片
- Activity动态添加fragment
- Android 动态添加Fragment
- 动态添加Fragment
- Fragment动态添加碎片
- 删除文件等用trash命令
- Android版添加phonegap--sencha打包插件教程
- THINK PHP自动完成,填充时间的一个“坑”
- android屏幕适配建议 (一)
- 关于网上商城开发的随笔记录1
- Fragment动态添加控件(Button/Layout/...)
- mysql中有大量sleep进程的原因与解决办法
- java 报错 the type JOptionPane is not accessible due to restriction on required library ×
- 让LinearLayout实现水平滑动,左右滑动
- JSONObject简介
- 毕业生自传----入职深白天地(Gone)
- 屏幕大小调整palyer setting
- 子线程更新Ui两种方法
- 关于百度坐标转火星坐标的问题