搭建基本的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>


0 0
原创粉丝点击