Android仿美团分类下拉菜单实例代码

Android仿美团分类下拉菜单实例代码,第1张

概述本文实例为大家分享了Android仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下

本文实例为大家分享了AndroID仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下

效果图

*** 作平台

AS2.0
第三方框架:butterknife
build.gradle

dependencIEs {compile filetree(dir: 'libs',include: ['*.jar'])testCompile 'junit:junit:4.12'compile 'com.androID.support:appcompat-v7:23.4.0'compile 'com.jakewharton:butterknife:7.0.1'}

实现代码

1、实现逻辑:主要利用Spinner与BaseAdapter来实现菜单下拉。具体美观效果要靠各个控件的调整,以及必要的分割线添加。
2、核心代码

适配器的item代码:item_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:orIEntation="vertical"  >  <TextVIEw    androID:ID="@+ID/item_main_tv"    androID:layout_wIDth="match_parent"    androID:layout_height="40dp"    androID:layout_marginleft="16dp"    androID:background="#fff"    androID:gravity="center_vertical"    androID:singleline="true"    androID:text="测试文字"    androID:textSize="15dp"    />  <!--分割线-->  <TextVIEw    androID:ID="@+ID/main_tv_line"    androID:layout_wIDth="match_parent"    androID:layout_height="1dp"    androID:layout_marginleft="16dp"    androID:layout_marginRight="16dp"    androID:background="#edecec"/></linearLayout>

主页面布局文件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:orIEntation="vertical"  >  <linearLayout    androID:layout_wIDth="match_parent"    androID:layout_height="40dp"    >    <Spinner      androID:ID="@+ID/main_sp1"      >    </Spinner>    <!--这个是spinner之间的分割线-->    <ImageVIEw      />    <Spinner      androID:ID="@+ID/main_sp2"            ></Spinner>    <ImageVIEw      />    <Spinner      androID:ID="@+ID/main_sp3"            ></Spinner>  </linearLayout>  <!--设置一条分割线-->  <TextVIEw    androID:layout_wIDth="match_parent"    androID:layout_height="1dp"    androID:background="#dcdcdc"    />  <linearLayout    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:background="#ffffff">    <TextVIEw      androID:layout_wIDth="match_parent"      androID:layout_height="match_parent"      androID:gravity="center"      androID:text="我是分类下面的正文内容"/>  </linearLayout></linearLayout>

style文件

 <!--spinner的样式-->  <style name="style_spinner">    <item name="androID:layout_wIDth">0dp</item>    <item name="androID:layout_height">40dp</item>    <item name="androID:layout_weight">1</item>    <item name="androID:dropDownVerticalOffset">40dp</item>    <item name="androID:dropDownWIDth">1000dp</item>  </style>  <!--定义spinner之间的线的样式-->  <style name="style_mian_verline">    <item name="androID:layout_wIDth">1dp</item>    <item name="androID:layout_height">25dp</item>    <item name="androID:background">#dcdcdc</item>    <item name="androID:layout_gravity">center_vertical</item>  </style>

MainActivity与适配器写在了一起,便于 *** 作

public class MainActivity extends AppCompatActivity {  @Bind(R.ID.main_sp1)  Spinner mMainSp1;  @Bind(R.ID.main_sp2)  Spinner mMainSp2;  @Bind(R.ID.main_sp3)  Spinner mMainSp3;  private List<String> data_List1;  private List<String> data_List2;  private List<String> data_List3;  private BaseAdapter arr_adapter;//适配器  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    ButterKnife.bind(this);    initData();    initAdapter();    setListener();  }  //设置监听事件,将来商家列表的排序都在这里面处理  private voID setListener() {    mMainSp1.setonItemSelectedListener(new AdapterVIEw.OnItemSelectedListener() {      @OverrIDe      public voID onItemSelected(AdapterVIEw<?> parent,VIEw vIEw,int position,long ID) {        Toast.makeText(MainActivity.this,"点击了"+data_List1.get(position),Toast.LENGTH_SHORT).show();      }      @OverrIDe      public voID onnothingSelected(AdapterVIEw<?> parent) {      }    });    mMainSp2.setonItemSelectedListener(new AdapterVIEw.OnItemSelectedListener() {      @OverrIDe      public voID onItemSelected(AdapterVIEw<?> parent,"点击了"+data_List2.get(position),Toast.LENGTH_SHORT).show();      }      @OverrIDe      public voID onnothingSelected(AdapterVIEw<?> parent) {      }    });    mMainSp3.setonItemSelectedListener(new AdapterVIEw.OnItemSelectedListener() {      @OverrIDe      public voID onItemSelected(AdapterVIEw<?> parent,"点击了"+data_List3.get(position),Toast.LENGTH_SHORT).show();      }      @OverrIDe      public voID onnothingSelected(AdapterVIEw<?> parent) {      }    });  }  private voID initAdapter() {    //适配器    arr_adapter = new MyAdapter(data_List1);    mMainSp1.setAdapter(arr_adapter);    //适配器    arr_adapter = new MyAdapter(data_List2);    mMainSp2.setAdapter(arr_adapter);    //适配器    arr_adapter = new MyAdapter(data_List3);    mMainSp3.setAdapter(arr_adapter);  }  //设置数据来源,这个要在网络获取。由于数据不会太多,不再考虑性能优化问题  private voID initData() {    //数据    data_List1 = new ArrayList<>();    data_List1.add("全部分类");    data_List1.add("零食");    data_List1.add("水果");    data_List1.add("洗衣");    data_List1.add("洗车");    data_List1.add("茶饮");    //数据    data_List2 = new ArrayList<>();    data_List2.add("商圈");    data_List2.add("郑州航院");    data_List2.add("华北水利水电大学");    data_List2.add("河南中医大学");    data_List2.add("河南财经大学");    //数据    data_List3 = new ArrayList<>();    data_List3.add("智能排序");    data_List3.add("好评优先");    data_List3.add("离我最近");    data_List3.add("价格最低");  }  //适配器  class MyAdapter extends BaseAdapter {    private LayoutInflater mLayoutInflater;    private List<String> mDataList;    MyAdapter(List<String> dataList) {      this.mDataList = dataList;      mLayoutInflater = LayoutInflater.from(MainActivity.this);    }    @OverrIDe    public int getCount() {      return mDataList.size();    }    @OverrIDe    public Object getItem(int position) {      return mDataList.get(position);    }    @OverrIDe    public long getItemID(int position) {      return position;    }    //数据不太多,没有使用VIEwHolder进行处理。    @OverrIDe    public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {      convertVIEw = VIEw.inflate(MainActivity.this,R.layout.item_main,null);      TextVIEw textVIEw = (TextVIEw) convertVIEw.findVIEwByID(R.ID.item_main_tv);      textVIEw.setText(mDataList.get(position));      return convertVIEw;    }  }}

以上就是本文的全部内容,希望对大家学习AndroID软件编程有所帮助。

总结

以上是内存溢出为你收集整理的Android仿美团分类下拉菜单实例代码全部内容,希望文章能够帮你解决Android仿美团分类下拉菜单实例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1149256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存