搭建基本的UI框架(标题----内容-----导航)
来源:互联网 发布:sql cast函数有什么用 编辑:程序博客网 时间:2024/06/03 09:29
导航栏:用RadioButton
标题:动态添加
主内内容区:ViewPager
自定义ViewPageri重写父类的onTouchEvent()方法。
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class NoScrollViewPager extends ViewPager {
public NoScrollViewPager(Context context) {
super(context);
}
public NoScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {//禁止ViewPager的触摸事件
return false;
}
}
java代码:
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import cn.banwxf.iqy.content.BasePager;
import cn.banwxf.iqy.content.FindPager;
import cn.banwxf.iqy.content.LoadPager;
import cn.banwxf.iqy.content.MyPager;
import cn.banwxf.iqy.content.NavlPager;
import cn.banwxf.iqy.content.RecomPager;
import cn.banwxf.iqy.view.NoScrollViewPager;
public class MainActivity extends Activity {
private ArrayList<BasePager> mPagers;//承载界面上导航中要展示的页面
private RadioGroup rg;
private NoScrollViewPager contentPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
}
private void initData() {
mPagers = new ArrayList<BasePager>();//BasePager是导航页面的通用父类。
mPagers.add(new RecomPager(this));
mPagers.add(new NavlPager(this));
mPagers.add(new FindPager(this));
mPagers.add(new LoadPager(this));
mPagers.add(new MyPager(this));
}
private void initView() {
contentPager = (NoScrollViewPager) findViewById(R.id.content_lv);
contentPager.setAdapter(new myAdapter());
rg = (RadioGroup) findViewById(R.id.botom_rg);
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.recom_btn:
contentPager.setCurrentItem(0, false);
mPagers.get(0).initDate();
break;
case R.id.navl_btn:
contentPager.setCurrentItem(1, false);
mPagers.get(1).initDate();
break;
case R.id.find_btn:
contentPager.setCurrentItem(2, false);
mPagers.get(2).initDate();
break;
case R.id.load_btn:
contentPager.setCurrentItem(3, false);
mPagers.get(3).initDate();
break;
case R.id.my_btn:
contentPager.setCurrentItem(4, false);
mPagers.get(4).initDate();
break;
}
}
});
mPagers.get(0).initDate();
}
class myAdapter extends PagerAdapter {
@Override
public int getCount() {
return mPagers.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
BasePager pager = mPagers.get(position);
View view = pager.rootView;
// pager.initDate();
container.addView(view);
return view;
}
}
}
import android.app.Activity;
import android.view.View;
import android.widget.FrameLayout;
import cn.banwxf.iqy.R;
public abstract class BasePager {
public View rootView;
private Activity activity;
public FrameLayout fl_content,fl_title;
public BasePager(Activity activity) {
this.activity = activity;
rootView = initView();
}
public View initView(){
View view = View.inflate(activity, R.layout.base_pager, null);
fl_title = (FrameLayout) view.findViewById(R.id.fl_title);
fl_content = (FrameLayout) view.findViewById(R.id.fl_content);
return view;
};
public abstract void initDate();
}
布局:
<RelativeLayout 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"
tools:context="cn.banwxf.iqy.MainActivity" >
<cn.banwxf.iqy.view.NoScrollViewPager
android:id="@+id/content_lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/botom_rg" />
<View android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000"/>
<RadioGroup
android:id="@+id/botom_rg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/recom_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bot_recom_bg_selector"
android:button="@null" />
<RadioButton
android:id="@+id/navl_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bot_navl_bg_selector"
android:button="@null" />
<RadioButton
android:id="@+id/find_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bot_find_bg_selector"
android:button="@null" />
<RadioButton
android:id="@+id/load_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bot_load_bg_selector"
android:button="@null" />
<RadioButton
android:id="@+id/my_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bot_my_bg_selector"
android:button="@null" />
</RadioGroup>
<View android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000"
android:layout_above="@id/botom_rg"/>
</RelativeLayout>
- 搭建基本的UI框架(标题----内容-----导航)
- 应用基本框架的搭建
- strust2框架的基本搭建
- Struts2基本框架的搭建
- android框架的基本搭建
- SSM 框架的基本搭建
- 简单快捷的Amaze UI框架搭建
- Unity3D 搭建优雅的UI框架
- Amaze UI框架搭建
- ssh框架搭建的基本步骤(以及各部分作用)
- ssh框架搭建的基本步骤(以及各部分作用)
- android框架搭建(一)-基本工具[log]的建立
- 基于springboot的框架搭建(1)项目基本介绍
- ssh框架搭建的基本步骤(以及各部分作用)
- 修改UI的标题
- iOS之UI初级---UIWindow的基本内容
- 用bootstrap实现导航栏的基本代码框架
- iOS--项目最常见框架的搭建(标签栏控制器+导航栏控制器+视图控制器)
- iOS开发 适配iOS10以及Xcode8
- JAVA基础--垃圾回收机制及算法
- Spring创建对象的三种方法之二静态工厂创建(源码)
- Web前端开发规范:CSS书写规范
- leetcode之回文字串库函数的使用
- 搭建基本的UI框架(标题----内容-----导航)
- Android之文件下载
- JAVA基础--JAVA的四种引用
- 走进Javascript变量的世界
- 大型网站之分布式会话管理
- ListView的性能优化之convertView和viewHolder
- scala中trait的线性化推导公式
- 如何为我们的Snappy Ubuntu应用编译并打包Snap(1)
- Mysql高效分页