Android 圆点导航+引导页的实现
16lz
2021-01-23
圆点导航的实现参照上一篇博文:https://blog.csdn.net/xialong_927/article/details/80332024
1、viewpager + FragmentActivity
布局文件common_activity_step4.xml
RemoteStep5Activity.java
/** * Created by xl on 2018/4/24. */public class RemoteStep5Activity extends FragmentActivity { private final static String TAG = RemoteStep5Activity.class.getSimpleName(); private Context mContext; private CustomMenuBar mMenubar; private ViewPager mViewPager; private HorizontalDotNavigation mDotNavigation; private List mListFragment; private int miCurrPager = 0; public final static int[] mContentIds = new int[]{ R.string.msg_install_remote_step4_tip1, R.string.msg_install_remote_step4_tip2, R.string.msg_install_remote_step4_tip3, R.string.msg_install_remote_step4_tip4, R.string.msg_install_remote_step4_tip5, R.string.msg_install_remote_step4_tip6, R.string.msg_install_remote_step4_tip7 }; public final static int[] mBtnTextIds = new int[]{ R.string.t_install_done, R.string.t_install_done, R.string.t_install_done, R.string.t_install_done, R.string.t_install_done, R.string.t_install_done, R.string.t_install_finish }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.common_activity_step4); findView(); init(); } /** * 查找控件 */ private void findView() { mMenubar = (CustomMenuBar) this.findViewById(R.id.menubar); mViewPager = (ViewPager) this.findViewById(R.id.viewpager); mDotNavigation = (HorizontalDotNavigation) this.findViewById(R.id.dot); } /** * 初始化 */ private void init() { // 初始化变量 mContext = this; // 添加Activity到堆栈 AppManager.getAppManager().addActivity(this); // 设置menubar mMenubar.setText(R.string.textview_button_remote); mMenubar.setButtonBackClick(new View.OnClickListener() { @Override public void onClick(View view) { exit(); } }); mMenubar.setButtonSeniorClick(new View.OnClickListener() { @Override public void onClick(View view) { CommonPopupAction.show(mContext, mMenubar); } }); // 初始化list initFragmentList(); // 初始化viewpager mViewPager.setAdapter(new MyFragmentViewPager(getSupportFragmentManager())); mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) { // 设置导航 setDotNavigation(position); // 设置当前页 miCurrPager = position; // 开始停止更新 switch (position) { case 0: break; case 1: break; } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); // 设置默认为第一屏 mViewPager.setCurrentItem(0); // 初始化导航 initDotNavigation(mListFragment.size()); } /** * 初始化fragmentlist */ private void initFragmentList() { mListFragment = new ArrayList<>(); for (int i = 0; i < 7; i++) { RemoteStepFragment fragment = new RemoteStepFragment(i); mListFragment.add(fragment); } } /** * ViewPager适配器 * * @author xl */ class MyFragmentViewPager extends FragmentPagerAdapter { public MyFragmentViewPager(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return mListFragment.get(position); } @Override public int getCount() { return mListFragment.size(); } } /** * 设置当前页 */ public void setCurrPager(int position){ mViewPager.setCurrentItem(position); } /** * 初始化导航 */ public void initDotNavigation(int sum) { mDotNavigation.setLenght(sum); mDotNavigation.setSelected(0); } /** * 设置导航 */ public void setDotNavigation(int select) { mDotNavigation.setSelected(select); } /** * 跳转页面 */ public void enter() { Intent intent = new Intent(this, StartActivity.class); startActivity(intent); AppManager.getAppManager().finishActivity(this); overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out); } /** * 返回 */ private void exit() { AppManager.getAppManager().finishActivity(this); overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } /** * 按键监听 * * @param keyCode * @param event * @return */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { exit(); return true; } if (keyCode == KeyEvent.KEYCODE_MENU) { CommonPopupAction.show(this, mMenubar); return true; } return super.onKeyDown(keyCode, event); }}
2、fragment的实现
布局文件common_fragment_step.xml
RemoteStepFragment.java
/** * 数据采集器下逆变器列表 * * @author xl * */public class RemoteStepFragment extends Fragment {private final static String TAG = RemoteStepFragment.class.getSimpleName();private RemoteStep5Activity mActivity;private View mView;private TextView mText1;private TextView mText2;private Button mButton1;private Button mButton2;private int mTag;public RemoteStepFragment() {}public RemoteStepFragment(int tag) {this.mTag = tag;}@Overridepublic void onCreate(Bundle savedInstanceState) { // 仅仅执行一次super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { // 可执行多次,每当切换到该页面时执行一次if (mView == null) {mView = inflater.inflate(R.layout.common_fragment_step, null);findView();init();} else {ViewGroup group = (ViewGroup) mView.getParent();if (group != null) {group.removeView(mView);}}return mView;}/** * 查找控件 */private void findView() {mText1 = (TextView) mView.findViewById(R.id.tv1);mText2 = (TextView) mView.findViewById(R.id.tv2);mButton1 = (Button) mView.findViewById(R.id.btn1);mButton2 = (Button) mView.findViewById(R.id.btn2);}/** * 初始化 */private void init() {// 初始化变量mActivity = (RemoteStep5Activity) getActivity();// 初始化textviewmText1.setVisibility(View.GONE);mText2.setText(RemoteStep5Activity.mContentIds[mTag]);//设置按钮mButton1.setText(RemoteStep5Activity.mBtnTextIds[mTag]);mButton2.setVisibility(View.GONE);mButton1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(mTag == 6){mActivity.enter();}else{mActivity.setCurrPager(mTag + 1);}}});}}
如图
完!!!
更多相关文章
- 原创:Android 基础 控件 之 TextVIew(一)
- android导出sqllist数据库要先配置adb.exe加到环境变量里
- android Button控件的四种不同方法
- Android的EditText控件点击虚拟键盘上的回车怎么跳到下一个EditT
- Android常用控件-AutoCompleteTextView
- 如何在Mac/Linux上设置android环境变量
- VideoView控件
- android 控件的移动
- android控件-ImageView使用方法整理