diff --git a/app/build.gradle b/app/build.gradle index 59ee41c..ecf4bcc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,4 +43,8 @@ dependencies { compile 'com.github.siyamed:android-shape-imageview:0.9.+@aar' //cardview compile 'com.android.support:cardview-v7:26.1.0' + //tablayout + compile 'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.0@aar' + //viewpager transforms +// compile 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:1.2.32@aar' } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/HomePagerAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/HomePagerAdapter.java new file mode 100644 index 0000000..770fd09 --- /dev/null +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/HomePagerAdapter.java @@ -0,0 +1,57 @@ +package com.example.ninefourone.nutritionmaster.adapter; + +import android.content.Context; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; + +import com.example.ninefourone.nutritionmaster.R; +import com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.page1.Page1; +import com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.page2.BodyInformationFragment; +import com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.page3.Page3; + + +/** + * Created by Wangtianrui on 2018/5/1. + */ + +public class HomePagerAdapter extends FragmentPagerAdapter { + private final String[] TITLES; + private Fragment[] fragments; + + public HomePagerAdapter(FragmentManager fm, Context context) { + super(fm); + TITLES = context.getResources().getStringArray(R.array.sections); + fragments = new Fragment[TITLES.length]; + } + + @Override + public Fragment getItem(int position) { + if (fragments[position] == null) { + switch (position) { + case 0: + fragments[position] = Page1.getInstance(); + break; + case 1: + fragments[position] = BodyInformationFragment.getInstance(); + break; + case 2: + fragments[position] = Page3.getInstance(); + break; + default: + break; + } + } + return fragments[position]; + } + + @Override + public int getCount() { + return TITLES.length; + } + + @Override + public CharSequence getPageTitle(int position) { + return TITLES[position]; + } +} diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java index 94bac8e..6631ea7 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java @@ -50,6 +50,7 @@ public abstract class BaseFragment extends Fragment { public abstract void initView(Bundle state); + @Override public void onResume() { super.onResume(); diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java index b24989f..02dfa2c 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java @@ -3,8 +3,12 @@ package com.example.ninefourone.nutritionmaster.modules; import android.os.Bundle; import android.widget.LinearLayout; + import com.example.ninefourone.nutritionmaster.R; +import com.example.ninefourone.nutritionmaster.adapter.HomePagerAdapter; import com.example.ninefourone.nutritionmaster.base.BaseActivity; +import com.example.ninefourone.nutritionmaster.ui.NoScrollViewPager; +import com.flyco.tablayout.SlidingTabLayout; import com.mxn.soul.flowingdrawer_core.ElasticDrawer; import com.mxn.soul.flowingdrawer_core.FlowingDrawer; @@ -18,6 +22,10 @@ public class MainActivity extends BaseActivity { FlowingDrawer mDrawer; @BindView(R.id.navigation_layout) LinearLayout navigationLayout; + @BindView(R.id.view_pager) + NoScrollViewPager viewPager; + @BindView(R.id.sliding_tab_layout) + SlidingTabLayout slidingTabLayout; @Override @@ -41,6 +49,20 @@ public class MainActivity extends BaseActivity { // Logger.i("openRatio=" + openRatio + " ,offsetPixels=" + offsetPixels); } }); + initViewPager(); + } + + /** + * 初始化ViewPager + */ + private void initViewPager() { + HomePagerAdapter homePagerAdapter = new HomePagerAdapter(getSupportFragmentManager(), this); + viewPager.setOffscreenPageLimit(3); + viewPager.setAdapter(homePagerAdapter); +// viewPager.setPageTransformer(true, new RotateUpTransformer()); + slidingTabLayout.setViewPager(viewPager); + viewPager.setCurrentItem(1); + } @Override diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page1/Page1.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page1/Page1.java new file mode 100644 index 0000000..24a795d --- /dev/null +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page1/Page1.java @@ -0,0 +1,27 @@ +package com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.page1; + +import android.os.Bundle; + +import com.example.ninefourone.nutritionmaster.R; +import com.example.ninefourone.nutritionmaster.base.BaseFragment; + +/** + * Created by ScorpioMiku on 2018/8/26. + */ + +public class Page1 extends BaseFragment { + @Override + public int getLayoutResId() { + return R.layout.page_1; + } + + @Override + public void initView(Bundle state) { + + } + + + public static BaseFragment getInstance() { + return new Page1(); + } +} diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page2/BodyInformationFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page2/BodyInformationFragment.java new file mode 100644 index 0000000..3083ba5 --- /dev/null +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page2/BodyInformationFragment.java @@ -0,0 +1,27 @@ +package com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.page2; + +import android.os.Bundle; + +import com.example.ninefourone.nutritionmaster.R; +import com.example.ninefourone.nutritionmaster.base.BaseFragment; + +/** + * Created by ScorpioMiku on 2018/8/26. + */ + +public class BodyInformationFragment extends BaseFragment { + @Override + public int getLayoutResId() { + return R.layout.page_2; + } + + @Override + public void initView(Bundle state) { + + } + + + public static BaseFragment getInstance() { + return new BodyInformationFragment(); + } +} diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page3/Page3.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page3/Page3.java new file mode 100644 index 0000000..fd1d881 --- /dev/null +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/page3/Page3.java @@ -0,0 +1,27 @@ +package com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.page3; + +import android.os.Bundle; + +import com.example.ninefourone.nutritionmaster.R; +import com.example.ninefourone.nutritionmaster.base.BaseFragment; + +/** + * Created by ScorpioMiku on 2018/8/26. + */ + +public class Page3 extends BaseFragment { + @Override + public int getLayoutResId() { + return R.layout.page_3; + } + + @Override + public void initView(Bundle state) { + + } + + + public static BaseFragment getInstance() { + return new Page3(); + } +} diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/ui/NoScrollViewPager.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/ui/NoScrollViewPager.java new file mode 100644 index 0000000..8b83745 --- /dev/null +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/ui/NoScrollViewPager.java @@ -0,0 +1,34 @@ +package com.example.ninefourone.nutritionmaster.ui; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; + +/** + * Created by Wangtianrui on 2018/5/1. + * 重写Viewpager解决点击tab去除滑动动画效果的问题 + */ +public class NoScrollViewPager extends ViewPager { + public NoScrollViewPager(Context context) { + super(context); + } + + public NoScrollViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public void scrollTo(int x, int y) { + super.scrollTo(x, y); + } + + @Override + public void setCurrentItem(int item, boolean smoothScroll) { + super.setCurrentItem(item, smoothScroll); + } + + @Override + public void setCurrentItem(int item) { + super.setCurrentItem(item, false); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/test_avatar.jpg b/app/src/main/res/drawable/test_avatar.jpg index 279015b..e9a5988 100644 Binary files a/app/src/main/res/drawable/test_avatar.jpg and b/app/src/main/res/drawable/test_avatar.jpg differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 78f1ebd..53d685e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -65,7 +65,29 @@ + + + + + + + diff --git a/app/src/main/res/layout/page_1.xml b/app/src/main/res/layout/page_1.xml new file mode 100644 index 0000000..95936f2 --- /dev/null +++ b/app/src/main/res/layout/page_1.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/page_2.xml b/app/src/main/res/layout/page_2.xml new file mode 100644 index 0000000..0dc0a74 --- /dev/null +++ b/app/src/main/res/layout/page_2.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/page_3.xml b/app/src/main/res/layout/page_3.xml new file mode 100644 index 0000000..26fb377 --- /dev/null +++ b/app/src/main/res/layout/page_3.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml new file mode 100644 index 0000000..3741717 --- /dev/null +++ b/app/src/main/res/values/arrays.xml @@ -0,0 +1,8 @@ + + + + page1 + page2 + page3 + + \ No newline at end of file