zoukankan      html  css  js  c++  java
  • 4月12日学习日志

    今天学习了fragment底部导航和ViewPager滑动页面。

    布局文件为:

    <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=".MainActivity">
    
        <RelativeLayout
            android:id="@+id/ly_top_bar"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:background="@color/bg_topbar">
    
            <TextView
                android:id="@+id/txt_topbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_centerInParent="true"
                android:gravity="center"
                android:text="提醒"
                android:textColor="@color/text_topbar"
                android:textSize="18sp" />
    
            <View
                android:layout_width="match_parent"
                android:layout_height="2px"
                android:layout_alignParentBottom="true"
                android:background="@color/div_white" />
    
        </RelativeLayout>
    
    
        <RadioGroup
            android:id="@+id/rg_tab_bar"
            android:layout_width="match_parent"
            android:layout_height="56dp"
            android:layout_alignParentBottom="true"
            android:background="@color/bg_white"
            android:orientation="horizontal">
    
            <RadioButton
                android:id="@+id/rb_channel"
                style="@style/tab_menu_item"
                android:drawableTop="@drawable/tab_menu_channel"
                android:text="@string/tab_menu_alert" />
    
            <RadioButton
                android:id="@+id/rb_message"
                style="@style/tab_menu_item"
                android:drawableTop="@drawable/tab_menu_message"
                android:text="@string/tab_menu_profile" />
    
            <RadioButton
                android:id="@+id/rb_better"
                style="@style/tab_menu_item"
                android:drawableTop="@drawable/tab_menu_better"
                android:text="@string/tab_menu_pay" />
    
            <RadioButton
                android:id="@+id/rb_setting"
                style="@style/tab_menu_item"
                android:drawableTop="@drawable/tab_menu_setting"
                android:text="@string/tab_menu_setting" />
    
        </RadioGroup>
    
        <View
            android:id="@+id/div_tab_bar"
            android:layout_width="match_parent"
            android:layout_height="2px"
            android:layout_above="@id/rg_tab_bar"
            android:background="@color/div_white" />
    
        <android.support.v4.view.ViewPager
            android:id="@+id/vpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@id/div_tab_bar"
            android:layout_below="@id/ly_top_bar" />
    
    
    </RelativeLayout>

    fragment布局为:

    <?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/bg_white"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/txt_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="呵呵"
            android:textColor="@color/text_yellow"
            android:textSize="20sp" />
    
    </LinearLayout>

    主要代码:

    package com.jay.fragmentdemo4;
    
    import android.os.Bundle;
    import android.support.v4.view.ViewPager;
    import android.support.v7.app.AppCompatActivity;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.TextView;
    
    
    /**
     * Created by Coder-pig on 2015/8/28 0028.
     */
    public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener,
            ViewPager.OnPageChangeListener {
    
        //UI Objects
        private TextView txt_topbar;
        private RadioGroup rg_tab_bar;
        private RadioButton rb_channel;
        private RadioButton rb_message;
        private RadioButton rb_better;
        private RadioButton rb_setting;
        private ViewPager vpager;
    
        private MyFragmentPagerAdapter mAdapter;
    
        //几个代表页面的常量
        public static final int PAGE_ONE = 0;
        public static final int PAGE_TWO = 1;
        public static final int PAGE_THREE = 2;
        public static final int PAGE_FOUR = 3;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
            bindViews();
            rb_channel.setChecked(true);
        }
    
        private void bindViews() {
            txt_topbar = (TextView) findViewById(R.id.txt_topbar);
            rg_tab_bar = (RadioGroup) findViewById(R.id.rg_tab_bar);
            rb_channel = (RadioButton) findViewById(R.id.rb_channel);
            rb_message = (RadioButton) findViewById(R.id.rb_message);
            rb_better = (RadioButton) findViewById(R.id.rb_better);
            rb_setting = (RadioButton) findViewById(R.id.rb_setting);
            rg_tab_bar.setOnCheckedChangeListener(this);
    
            vpager = (ViewPager) findViewById(R.id.vpager);
            vpager.setAdapter(mAdapter);
            vpager.setCurrentItem(0);
            vpager.addOnPageChangeListener(this);
        }
    
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId) {
                case R.id.rb_channel:
                    vpager.setCurrentItem(PAGE_ONE);
                    break;
                case R.id.rb_message:
                    vpager.setCurrentItem(PAGE_TWO);
                    break;
                case R.id.rb_better:
                    vpager.setCurrentItem(PAGE_THREE);
                    break;
                case R.id.rb_setting:
                    vpager.setCurrentItem(PAGE_FOUR);
                    break;
            }
        }
    
    
        //重写ViewPager页面切换的处理方法
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }
    
        @Override
        public void onPageSelected(int position) {
        }
    
        @Override
        public void onPageScrollStateChanged(int state) {
            //state的状态有三个,0表示什么都没做,1正在滑动,2滑动完毕
            if (state == 2) {
                switch (vpager.getCurrentItem()) {
                    case PAGE_ONE:
                        rb_channel.setChecked(true);
                        break;
                    case PAGE_TWO:
                        rb_message.setChecked(true);
                        break;
                    case PAGE_THREE:
                        rb_better.setChecked(true);
                        break;
                    case PAGE_FOUR:
                        rb_setting.setChecked(true);
                        break;
                }
            }
        }
    }
  • 相关阅读:
    eureka的fetch-registry属性解释
    数据结构设计
    typescript let和const区别
    JDK8新特性
    Synchronized的内存可见性
    java实现打印功能
    idea单元测试jpa注入失败问题----来自Spring Cloud微服务实战-idea版的 廖师兄的product
    eclipse快速生成接口
    读取 Excel 之 Epplus
    [转][Dapper]参数化查询慢
  • 原文地址:https://www.cnblogs.com/20193925zxt/p/14909800.html
Copyright © 2011-2022 走看看