day56_实战项目智慧北京第02天
2017-12-25 19:45
351 查看
01_第二阶段开发:自定义不能滑动ViewPager
帧布局的好处就是给一个全新的画板,里面的完全是空的,可以任意去放任何组件
继承viewpager,禁止page滑动
02_设置界面是否能滑动出左侧菜单
03_添加按钮事件来控制左侧菜单的显示或关闭
左侧菜单属于mainActivity的一部分,而导航按钮属于main_content_menu的一部分
04_Viewpager的懒加载
测试程序顶格写,方便删除
05_第三阶段需求:开发左侧菜单和对应的空页面
06_获取服务器的json数据并通过Gson解析(省略)
07_左侧菜单数据的获取和显示
08_左侧菜单的listview的显示和事件处理
09_通过点击左侧菜单切换新闻中心的四个页面
目前只有第一个博客首页可以真正实现左侧菜单的切换
10_通过接口回调实现左侧菜单控制新闻中心页面的切换
11_第三开发阶段的总结
第三阶段
1.获取数据http://10.0.2.2:8080/zhbj/categories.json
2.设置左侧菜单的显示和数据
1.显示
采用ListView
//listview显示左侧菜单
lv_leftData = new ListView(mainActivity);
//背景是黑色
lv_leftData.setBackgroundColor(Color.BLACK);
//选中拖动的背景色 设置成透明
lv_leftData.setCacheColorHint(Color.TRANSPARENT);
//设置选中时为透明背景
lv_leftData.setSelector(new ColorDrawable(Color.TRANSPARENT));
//没有分割线
lv_leftData.setDividerHeight(0);
//距顶部为45px
lv_leftData.setPadding(0, 45, 0, 0);
2.条目显示
采用TextView
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dip"
android:text="新闻"
android:enabled="false"
android:textColor="@color/leftmenu_list_item_tv_color"
android:drawablePadding="10dip"
android:layout_marginLeft="10dip"
android:drawableLeft="@drawable/leftmenu_list_item_tv_drawable"
android:textSize="20sp" >
</TextView>
3. 数据适配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//显示数据
TextView tv_currentView;
if (convertView == null) {
tv_currentView = (TextView) View.inflate(mainActivity, R.layout.leftmenu_list_item, null);
} else {
tv_currentView = (TextView) convertView;
}
//设置数据
tv_currentView.setText(data.get(position).title);
//判断是否被选中
tv_currentView.setEnabled(position == selectPosition);
return tv_currentView;
}
4. 设置listview选择事件
//设置listview的选择事件
lv_leftData.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//保存选中的位置
selectPosition = position;
//更新界面
adapter.notifyDataSetChanged();
//控制新闻中心,四个新闻页面的显示
//mainActivity.getMainMenuFragment().leftMenuClickSwitchPage(selectPosition);
if (switchListener != null) {
switchListener.switchPage(selectPosition);
} else {
mainActivity.getMainMenuFragment().leftMenuClickSwitchPage(selectPosition);
}
//切换SlidingMenu的开关
mainActivity.getSlidingMenu().toggle();
}
});
新闻中心的四个页面的设计首先页面的基类 protected MainActivity mainActivity ;
protected View root;//根布局 public BaseNewsCenterPage(MainActivity mainActivity) { this.mainActivity = mainActivity; root = initView(); initEvent(); }
/**
* 子类覆盖此方法完成事件的处理
*/
public void initEvent(){
}
/**
* 子类覆盖此方法来显示自定义的View
* @return
*/
public abstract View initView();
public View getRoot(){
return root;
}
/**
* 子类覆盖此方法完成数据的显示
*/
public void initData(){
}
创建四个页面,一个为例: public class PhotosBaseNewsCenterPage extends BaseNewsCenterPage {
public PhotosBaseNewsCenterPage(MainActivity mainActivity) {
super(mainActivity);
// TODO Auto-generated constructor stub
}
@Override
public View initView() {
TextView tv = new TextView(mainActivity);
tv.setText("组图的内容");
tv.setTextSize(25);
tv.setGravity(Gravity.CENTER);
return tv;
}
}
4.新闻中心数据处理
1.解析json数据
2. 给左侧菜单设置数据
3. 设置页面选择的方法
4. 设置监听回调
5. 通过MainActivity切换页面
12_第四阶段开发功能分析
13_新闻中心页面的实现(采用ViewPagerIndicator开源框架)
相关文章推荐
- Android 项目实战:智慧北京(黑马)
- day55_实战项目智慧北京第01天
- day57_实战项目智慧北京第03天
- day58_实战项目智慧北京第04天
- Android 项目实战:智慧北京(黑马)
- day59_实战项目智慧北京第05天
- day60_实战项目智慧北京第06天
- day39_实战项目安全卫士之第02天
- android项目智慧北京开发完整步骤:第二天
- Android智慧北京项目总结
- android项目智慧北京开发完整步骤:第一天
- 仿今日头条和qq侧滑和智慧北京的小项目 1
- 仿今日头条和qq侧滑和智慧北京的小项目 2
- 北京某牧场管理企业——牧场智慧管理项目
- android项目智慧北京开发完整步骤:第三天
- 智慧北京项目总结
- 第02天实战技术(06):项目恶心Bug
- 智慧北京项目第一天
- 仿今日头条和qq侧滑和智慧北京的小项目 3
- 项目1------智慧北京