- 浏览: 775345 次
文章分类
最新评论
-
Anloney:
楼主,用第二种方法闪光灯只能亮不能闪烁是怎么回事啊,可不可 ...
Android开启闪光灯的几种办法 -
星火2012:
给力!!
SQL Server创建存储过程 -
jiangzhoubai:
您好,不知道您能看到这个回复么? 我在使用微信api时,需要微 ...
Android 第三方应用接入微信平台(2) -
啵啵丹:
怎么没有图片
android Dialog窗体监听
导航菜单横向左右滑动并和下方的控件实现联动(有效果图)
这个是美团网个人订单的效果,找了很多地方都没找到,自己研究了两天终于弄出来了^_^,有什么问题希望大家指出来,谢谢。
实现原理是上方使用HorizontalScrollView这个可以水平横向拖动的控件,在其中加入了5个RadioButton;下方使用的是ViewPager,里面加入了7个Layout文件,其中第一个和最后一个为空,是为了实现拖到第一个屏幕的时候还能往外拖动的效果。
先看下效果,切换都是带动画效果的,并且点击上面最右边的标签时会自动滚动出后面的标签。
现在看一下代码:
- packagecom.zj.horizontalsrollview;
- importjava.util.ArrayList;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.os.Parcelable;
- importandroid.support.v4.view.PagerAdapter;
- importandroid.support.v4.view.ViewPager;
- importandroid.support.v4.view.ViewPager.OnPageChangeListener;
- importandroid.util.Log;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.view.ViewGroup.MarginLayoutParams;
- importandroid.view.animation.Animation;
- importandroid.view.animation.AnimationSet;
- importandroid.view.animation.AnimationUtils;
- importandroid.view.animation.TranslateAnimation;
- importandroid.widget.HorizontalScrollView;
- importandroid.widget.ImageView;
- importandroid.widget.RadioButton;
- importandroid.widget.RadioGroup;
- importandroid.widget.RadioGroup.OnCheckedChangeListener;
- importandroid.widget.RelativeLayout;
- importandroid.widget.RelativeLayout.LayoutParams;
- /**
- *HorizontalScrollView和ViewPager联动效果
- *上面为HorizontalScrollView,下面为ViewPager
- *@authorzj
- *2012-5-23下午1:07:06
- */
- publicclassMainActivityextendsActivityimplementsOnCheckedChangeListener{
- privateRadioGroupmRadioGroup;
- privateRadioButtonmRadioButton1;
- privateRadioButtonmRadioButton2;
- privateRadioButtonmRadioButton3;
- privateRadioButtonmRadioButton4;
- privateRadioButtonmRadioButton5;
- privateImageViewmImageView;
- privatefloatmCurrentCheckedRadioLeft;//当前被选中的RadioButton距离左侧的距离
- privateHorizontalScrollViewmHorizontalScrollView;//上面的水平滚动控件
- privateViewPagermViewPager;//下方的可横向拖动的控件
- privateArrayList<View>mViews;//用来存放下方滚动的layout(layout_1,layout_2,layout_3)
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- iniController();
- iniListener();
- iniVariable();
- mRadioButton1.setChecked(true);
- mViewPager.setCurrentItem(1);
- mCurrentCheckedRadioLeft=getCurrentCheckedRadioLeft();
- }
- privatevoidiniVariable(){
- //TODOAuto-generatedmethodstub
- mViews=newArrayList<View>();
- mViews.add(getLayoutInflater().inflate(R.layout.layout_0,null));
- mViews.add(getLayoutInflater().inflate(R.layout.layout_1,null));
- mViews.add(getLayoutInflater().inflate(R.layout.layout_2,null));
- mViews.add(getLayoutInflater().inflate(R.layout.layout_3,null));
- mViews.add(getLayoutInflater().inflate(R.layout.layout_4,null));
- mViews.add(getLayoutInflater().inflate(R.layout.layout_5,null));
- mViews.add(getLayoutInflater().inflate(R.layout.layout_0,null));
- mViewPager.setAdapter(newMyPagerAdapter());//设置ViewPager的适配器
- }
- /**
- *RadioGroup点击CheckedChanged监听
- */
- @Override
- publicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){
- AnimationSet_AnimationSet=newAnimationSet(true);
- TranslateAnimation_TranslateAnimation;
- Log.i("zj","checkedid="+checkedId);
- if(checkedId==R.id.btn1){
- _TranslateAnimation=newTranslateAnimation(mCurrentCheckedRadioLeft,getResources().getDimension(R.dimen.rdo1),0f,0f);
- _AnimationSet.addAnimation(_TranslateAnimation);
- _AnimationSet.setFillBefore(false);
- _AnimationSet.setFillAfter(true);
- _AnimationSet.setDuration(100);
- /*LayoutParams_LayoutParams1=newLayoutParams(100,4);
- _LayoutParams1.setMargins(0,0,0,0);
- _LayoutParams1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);*/
- //mImageView.bringToFront();
- mImageView.startAnimation(_AnimationSet);//开始上面蓝色横条图片的动画切换
- //mImageView.setLayoutParams(_LayoutParams1);
- mViewPager.setCurrentItem(1);//让下方ViewPager跟随上面的HorizontalScrollView切换
- }elseif(checkedId==R.id.btn2){
- _TranslateAnimation=newTranslateAnimation(mCurrentCheckedRadioLeft,getResources().getDimension(R.dimen.rdo2),0f,0f);
- _AnimationSet.addAnimation(_TranslateAnimation);
- _AnimationSet.setFillBefore(false);
- _AnimationSet.setFillAfter(true);
- _AnimationSet.setDuration(100);
- //mImageView.bringToFront();
- mImageView.startAnimation(_AnimationSet);
- mViewPager.setCurrentItem(2);
- }elseif(checkedId==R.id.btn3){
- _TranslateAnimation=newTranslateAnimation(mCurrentCheckedRadioLeft,getResources().getDimension(R.dimen.rdo3),0f,0f);
- _AnimationSet.addAnimation(_TranslateAnimation);
- _AnimationSet.setFillBefore(false);
- _AnimationSet.setFillAfter(true);
- _AnimationSet.setDuration(100);
- //mImageView.bringToFront();
- mImageView.startAnimation(_AnimationSet);
- mViewPager.setCurrentItem(3);
- }elseif(checkedId==R.id.btn4){
- _TranslateAnimation=newTranslateAnimation(mCurrentCheckedRadioLeft,getResources().getDimension(R.dimen.rdo4),0f,0f);
- _AnimationSet.addAnimation(_TranslateAnimation);
- _AnimationSet.setFillBefore(false);
- _AnimationSet.setFillAfter(true);
- _AnimationSet.setDuration(100);
- //mImageView.bringToFront();
- mImageView.startAnimation(_AnimationSet);
- mViewPager.setCurrentItem(4);
- }elseif(checkedId==R.id.btn5){
- _TranslateAnimation=newTranslateAnimation(mCurrentCheckedRadioLeft,getResources().getDimension(R.dimen.rdo5),0f,0f);
- _AnimationSet.addAnimation(_TranslateAnimation);
- _AnimationSet.setFillBefore(false);
- _AnimationSet.setFillAfter(true);
- _AnimationSet.setDuration(100);
- //mImageView.bringToFront();
- mImageView.startAnimation(_AnimationSet);
- mViewPager.setCurrentItem(5);
- }
- mCurrentCheckedRadioLeft=getCurrentCheckedRadioLeft();
- Log.i("zj","getCurrentCheckedRadioLeft="+getCurrentCheckedRadioLeft());
- Log.i("zj","getDimension="+getResources().getDimension(R.dimen.rdo2));
- mHorizontalScrollView.smoothScrollTo((int)mCurrentCheckedRadioLeft-(int)getResources().getDimension(R.dimen.rdo2),0);
- }
- /**
- *获得当前被选中的RadioButton距离左侧的距离
- */
- privatefloatgetCurrentCheckedRadioLeft(){
- //TODOAuto-generatedmethodstub
- if(mRadioButton1.isChecked()){
- //Log.i("zj","currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo1));
- returngetResources().getDimension(R.dimen.rdo1);
- }elseif(mRadioButton2.isChecked()){
- //Log.i("zj","currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo2));
- returngetResources().getDimension(R.dimen.rdo2);
- }elseif(mRadioButton3.isChecked()){
- //Log.i("zj","currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo3));
- returngetResources().getDimension(R.dimen.rdo3);
- }elseif(mRadioButton4.isChecked()){
- //Log.i("zj","currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo4));
- returngetResources().getDimension(R.dimen.rdo4);
- }elseif(mRadioButton5.isChecked()){
- //Log.i("zj","currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo5));
- returngetResources().getDimension(R.dimen.rdo5);
- }
- return0f;
- }
- privatevoidiniListener(){
- //TODOAuto-generatedmethodstub
- mRadioGroup.setOnCheckedChangeListener(this);
- mViewPager.setOnPageChangeListener(newMyPagerOnPageChangeListener());
- }
- privatevoidiniController(){
- //TODOAuto-generatedmethodstub
- mRadioGroup=(RadioGroup)findViewById(R.id.radioGroup);
- mRadioButton1=(RadioButton)findViewById(R.id.btn1);
- mRadioButton2=(RadioButton)findViewById(R.id.btn2);
- mRadioButton3=(RadioButton)findViewById(R.id.btn3);
- mRadioButton4=(RadioButton)findViewById(R.id.btn4);
- mRadioButton5=(RadioButton)findViewById(R.id.btn5);
- mImageView=(ImageView)findViewById(R.id.img1);
- mHorizontalScrollView=(HorizontalScrollView)findViewById(R.id.horizontalScrollView);
- mViewPager=(ViewPager)findViewById(R.id.pager);
- }
- /**
- *ViewPager的适配器
- *@authorzj
- *2012-5-24下午2:26:57
- */
- privateclassMyPagerAdapterextendsPagerAdapter{
- @Override
- publicvoiddestroyItem(Viewv,intposition,Objectobj){
- //TODOAuto-generatedmethodstub
- ((ViewPager)v).removeView(mViews.get(position));
- }
- @Override
- publicvoidfinishUpdate(Viewarg0){
- //TODOAuto-generatedmethodstub
- }
- @Override
- publicintgetCount(){
- //TODOAuto-generatedmethodstub
- returnmViews.size();
- }
- @Override
- publicObjectinstantiateItem(Viewv,intposition){
- ((ViewPager)v).addView(mViews.get(position));
- returnmViews.get(position);
- }
- @Override
- publicbooleanisViewFromObject(Viewarg0,Objectarg1){
- //TODOAuto-generatedmethodstub
- returnarg0==arg1;
- }
- @Override
- publicvoidrestoreState(Parcelablearg0,ClassLoaderarg1){
- //TODOAuto-generatedmethodstub
- }
- @Override
- publicParcelablesaveState(){
- //TODOAuto-generatedmethodstub
- returnnull;
- }
- @Override
- publicvoidstartUpdate(Viewarg0){
- //TODOAuto-generatedmethodstub
- }
- }
- /**
- *ViewPager的PageChangeListener(页面改变的监听器)
- *@authorzj
- *2012-5-24下午3:14:27
- */
- privateclassMyPagerOnPageChangeListenerimplementsOnPageChangeListener{
- @Override
- publicvoidonPageScrollStateChanged(intarg0){
- //TODOAuto-generatedmethodstub
- }
- @Override
- publicvoidonPageScrolled(intarg0,floatarg1,intarg2){
- //TODOAuto-generatedmethodstub
- }
- /**
- *滑动ViewPager的时候,让上方的HorizontalScrollView自动切换
- */
- @Override
- publicvoidonPageSelected(intposition){
- //TODOAuto-generatedmethodstub
- //Log.i("zj","position="+position);
- if(position==0){
- mViewPager.setCurrentItem(1);
- }elseif(position==1){
- mRadioButton1.performClick();
- }elseif(position==2){
- mRadioButton2.performClick();
- }elseif(position==3){
- mRadioButton3.performClick();
- }elseif(position==4){
- mRadioButton4.performClick();
- }elseif(position==5){
- mRadioButton5.performClick();
- }elseif(position==6){
- mViewPager.setCurrentItem(5);
- }
- }
- }
- }
package com.zj.horizontalsrollview; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.MarginLayoutParams; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.AnimationUtils; import android.view.animation.TranslateAnimation; import android.widget.HorizontalScrollView; import android.widget.ImageView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.RelativeLayout; import android.widget.RelativeLayout.LayoutParams; /** * HorizontalScrollView和ViewPager联动效果 * 上面为HorizontalScrollView,下面为ViewPager * @author zj * 2012-5-23 下午1:07:06 */ public class MainActivity extends Activity implements OnCheckedChangeListener{ private RadioGroup mRadioGroup; private RadioButton mRadioButton1; private RadioButton mRadioButton2; private RadioButton mRadioButton3; private RadioButton mRadioButton4; private RadioButton mRadioButton5; private ImageView mImageView; private float mCurrentCheckedRadioLeft;//当前被选中的RadioButton距离左侧的距离 private HorizontalScrollView mHorizontalScrollView;//上面的水平滚动控件 private ViewPager mViewPager; //下方的可横向拖动的控件 private ArrayList<View> mViews;//用来存放下方滚动的layout(layout_1,layout_2,layout_3) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); iniController(); iniListener(); iniVariable(); mRadioButton1.setChecked(true); mViewPager.setCurrentItem(1); mCurrentCheckedRadioLeft = getCurrentCheckedRadioLeft(); } private void iniVariable() { // TODO Auto-generated method stub mViews = new ArrayList<View>(); mViews.add(getLayoutInflater().inflate(R.layout.layout_0, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_1, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_2, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_3, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_4, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_5, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_0, null)); mViewPager.setAdapter(new MyPagerAdapter());//设置ViewPager的适配器 } /** * RadioGroup点击CheckedChanged监听 */ @Override public void onCheckedChanged(RadioGroup group, int checkedId) { AnimationSet _AnimationSet = new AnimationSet(true); TranslateAnimation _TranslateAnimation; Log.i("zj", "checkedid="+checkedId); if (checkedId == R.id.btn1) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo1), 0f, 0f); _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100); /*LayoutParams _LayoutParams1 = new LayoutParams(100, 4); _LayoutParams1.setMargins(0, 0, 0, 0); _LayoutParams1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);*/ //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet);//开始上面蓝色横条图片的动画切换 //mImageView.setLayoutParams(_LayoutParams1); mViewPager.setCurrentItem(1);//让下方ViewPager跟随上面的HorizontalScrollView切换 }else if (checkedId == R.id.btn2) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo2), 0f, 0f); _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100); //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet); mViewPager.setCurrentItem(2); }else if (checkedId == R.id.btn3) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo3), 0f, 0f); _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100); //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet); mViewPager.setCurrentItem(3); }else if (checkedId == R.id.btn4) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo4), 0f, 0f); _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100); //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet); mViewPager.setCurrentItem(4); }else if (checkedId == R.id.btn5) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo5), 0f, 0f); _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100); //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet); mViewPager.setCurrentItem(5); } mCurrentCheckedRadioLeft = getCurrentCheckedRadioLeft(); Log.i("zj", "getCurrentCheckedRadioLeft="+getCurrentCheckedRadioLeft()); Log.i("zj", "getDimension="+getResources().getDimension(R.dimen.rdo2)); mHorizontalScrollView.smoothScrollTo((int)mCurrentCheckedRadioLeft-(int)getResources().getDimension(R.dimen.rdo2), 0); } /** * 获得当前被选中的RadioButton距离左侧的距离 */ private float getCurrentCheckedRadioLeft() { // TODO Auto-generated method stub if (mRadioButton1.isChecked()) { //Log.i("zj", "currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo1)); return getResources().getDimension(R.dimen.rdo1); }else if (mRadioButton2.isChecked()) { //Log.i("zj", "currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo2)); return getResources().getDimension(R.dimen.rdo2); }else if (mRadioButton3.isChecked()) { //Log.i("zj", "currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo3)); return getResources().getDimension(R.dimen.rdo3); }else if (mRadioButton4.isChecked()) { //Log.i("zj", "currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo4)); return getResources().getDimension(R.dimen.rdo4); }else if (mRadioButton5.isChecked()) { //Log.i("zj", "currentCheckedRadioLeft="+getResources().getDimension(R.dimen.rdo5)); return getResources().getDimension(R.dimen.rdo5); } return 0f; } private void iniListener() { // TODO Auto-generated method stub mRadioGroup.setOnCheckedChangeListener(this); mViewPager.setOnPageChangeListener(new MyPagerOnPageChangeListener()); } private void iniController() { // TODO Auto-generated method stub mRadioGroup = (RadioGroup)findViewById(R.id.radioGroup); mRadioButton1 = (RadioButton)findViewById(R.id.btn1); mRadioButton2 = (RadioButton)findViewById(R.id.btn2); mRadioButton3 = (RadioButton)findViewById(R.id.btn3); mRadioButton4 = (RadioButton)findViewById(R.id.btn4); mRadioButton5 = (RadioButton)findViewById(R.id.btn5); mImageView = (ImageView)findViewById(R.id.img1); mHorizontalScrollView = (HorizontalScrollView)findViewById(R.id.horizontalScrollView); mViewPager = (ViewPager)findViewById(R.id.pager); } /** * ViewPager的适配器 * @author zj * 2012-5-24 下午2:26:57 */ private class MyPagerAdapter extends PagerAdapter{ @Override public void destroyItem(View v, int position, Object obj) { // TODO Auto-generated method stub ((ViewPager)v).removeView(mViews.get(position)); } @Override public void finishUpdate(View arg0) { // TODO Auto-generated method stub } @Override public int getCount() { // TODO Auto-generated method stub return mViews.size(); } @Override public Object instantiateItem(View v, int position) { ((ViewPager)v).addView(mViews.get(position)); return mViews.get(position); } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0 == arg1; } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { // TODO Auto-generated method stub } @Override public Parcelable saveState() { // TODO Auto-generated method stub return null; } @Override public void startUpdate(View arg0) { // TODO Auto-generated method stub } } /** * ViewPager的PageChangeListener(页面改变的监听器) * @author zj * 2012-5-24 下午3:14:27 */ private class MyPagerOnPageChangeListener implements OnPageChangeListener{ @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } /** * 滑动ViewPager的时候,让上方的HorizontalScrollView自动切换 */ @Override public void onPageSelected(int position) { // TODO Auto-generated method stub //Log.i("zj", "position="+position); if (position == 0) { mViewPager.setCurrentItem(1); }else if (position == 1) { mRadioButton1.performClick(); }else if (position == 2) { mRadioButton2.performClick(); }else if (position == 3) { mRadioButton3.performClick(); }else if (position == 4) { mRadioButton4.performClick(); }else if (position == 5) { mRadioButton5.performClick(); }else if (position == 6) { mViewPager.setCurrentItem(5); } } } }
XML文件:
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <HorizontalScrollView
- android:layout_width="match_parent"
- android:layout_height="50dp"
- android:fadingEdge="@null"
- android:scrollbars="none"
- android:background="#555555"
- android:id="@+id/horizontalScrollView"
- >
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#33b5e5"
- >
- <RadioGroup
- android:id="@+id/radioGroup"
- android:layout_width="fill_parent"
- android:layout_height="49dp"
- android:orientation="horizontal"
- android:layout_alignParentTop="true"
- >
- <RadioButton
- style="@style/radioButton"
- android:text="one"
- android:id="@+id/btn1"
- />
- <RadioButton
- style="@style/radioButton"
- android:text="two"
- android:id="@+id/btn2"
- />
- <RadioButton
- style="@style/radioButton"
- android:text="three"
- android:id="@+id/btn3"
- />
- <RadioButton
- style="@style/radioButton"
- android:text="four"
- android:id="@+id/btn4"
- />
- <RadioButton
- style="@style/radioButton"
- android:text="five"
- android:id="@+id/btn5"
- />
- </RadioGroup>
- <ImageView
- android:id="@+id/img1"
- android:layout_width="100dp"
- android:layout_height="4dp"
- android:background="#33b5e5"
- android:layout_alignParentBottom="true"
- />
- </RelativeLayout>
- </HorizontalScrollView>
- <android.support.v4.view.ViewPager
- android:id="@+id/pager"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- />
- </LinearLayout>
相关推荐
Android项目导航菜单横向左右滑动并和下方的控件实现联动.rar
HorizontalScrollView ViewPager 导航菜单横向左右滑动并和下方的控件实现联动 _AnimationSet.setFillBefore(false);删除
android导航菜单横向左右滑动并和下方的控件实现联动
Andorid项目源码 导航菜单横向左右滑动并和下方的控件实现联动
导航菜单横向左右滑动并和下方的控件实现联动.zip
导航菜单横向左右滑动并和下方的控件实现联动 2.zip
导航菜单横向左右滑动并和下方的控件实现联动_Android
安卓Android源码——导航菜单横向左右滑动并和下方的控件实现联动.rar
安卓Android源码——导航菜单横向左右滑动并和下方的控件实现联动.zip
导航菜单横向左右滑动并和下方的控件实现联动毕业设计—(包含完整源码可运行).zip
安卓app开发项目-导航菜单横向左右滑动并和下方的控件实现联动(源码).zip
这里是计算机专业-Andorid项目源码100套之一的导航菜单横向左右滑动并和下方的控件实现联动,类似于蘑菇街和迷尚 应用里的排列,希望能对大家有所帮助哦!