qtdesigner怎么实现菜单栏跳转_人人都可写代码-Android零基础编程-app 入口菜单栏实操08...

欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是项目实操,以智者精选项目为例,编写一个Android app的入口关联菜单栏逻辑。

这是要实现的菜单栏组件展示效果,下面就是教大家如何制作的步骤:

51cdf105acaf48d744ee1dedfb745e79.png
  1. APP的菜单栏是把一级页面Frame组合起来,并实现各个Frame之间交互的切换跳转。首先创建菜单栏的布局文件activity_main.xml,然后创建入口文件MainActivity,最后在MainActivity中关联各个Frame文件和实现Frame之间的切换跳转逻辑。

2、activity_main.xml布局文件编写的代码是:

xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:orientation="vertical">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
<com.zhjd.android.view.NoScrollViewPager android:id="@+id/main_viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1">
com.zhjd.android.view.NoScrollViewPager>
<View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#787878"/>
<RadioGroup android:id="@+id/content_rg" android:layout_width="match_parent" android:layout_height="53dp" android:orientation="horizontal">
<RadioButton android:drawableTop="@drawable/selector_main" android:id="@+id/content_rb_home" style="@style/content_rb_style" android:paddingTop="8dp"/>
<RadioButton android:drawableTop="@drawable/selector_rewen" android:id="@+id/content_rb_order" style="@style/content_rb_style" android:paddingTop="8dp"/>
<RadioButton android:drawableTop="@drawable/selector_mine" android:id="@+id/content_rb_mine" style="@style/content_rb_style" android:paddingTop="8dp"/>
RadioGroup>
LinearLayout>
LinearLayout>

3、MainActivity文件关联各个Fragment的部分代码是:

private void initData() {mData = new ArrayList<>();mData.add(new HomeFragment());mData.add(new ReWenFragment());mData.add(new MyFragment());mMainViewpager.setAdapter(new MainViewPagerAdapter(getSupportFragmentManager()));
}

4、MainActivity文件中实现Frame之间切换跳转逻辑的部分代码是:

private void initListener() {mContentRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {
changeRGroupAndViewPager(checkedId, 0);
}
});
}private void changeRGroupAndViewPager(int checkedId, int curposition) {if (checkedId != 0) {//然后根据id,改变int position = 0;switch (checkedId) {case R.id.content_rb_home:
position = 0;break;case R.id.content_rb_order:
position = 1;break;case R.id.content_rb_mine:
position = 2;break;
}mMainViewpager.setCurrentItem(position);
} else {//肯定,就是根据position来改变,viewpager的位置了int rbId = 0;switch (curposition) {case 0:
rbId = R.id.content_rb_home;break;case 1:
rbId = R.id.content_rb_order;break;case 2:
rbId = R.id.content_rb_mine;break;
}mContentRg.check(rbId);
}
}

以上几个步骤,是实现菜单栏逻辑的整体思路,可以按照这个思路去多练习,具体的全部代码请参考我提供的开发框架源码。

开头:人人都可写代码-Android零基础编程-序言-01

下一篇:人人都可写代码-Android零基础编程-线性布局09

你可能感兴趣的:(qtdesigner怎么实现菜单栏跳转_人人都可写代码-Android零基础编程-app 入口菜单栏实操08...)