Android从0到完整项目(6)下拉列表与分段选择

简单的下拉列表(仿美团)和 分段选择

分段选择

TabLayout 实现分段选择与底部导航

下拉菜单

美团下拉选择

IOS Segemnt

IOS Segemnt

Segemnt 的简单使用方法

  <com.ningcui.mylibrary.viewLib.segment.SegmentedGroup

                    android:layout_gravity="center"
                    android:id="@+id/segmented4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="10dp"
                    android:orientation="horizontal"
                    segmentedgroup:sc_border_width="1dp"
                    segmentedgroup:sc_corner_radius="5dp"
                    segmentedgroup:sc_tint_color="#F44336">

                    <com.ningcui.mylibrary.viewLib.segment.AwesomeRadioButton
                        android:id="@+id/button41"
                        style="@style/RadioButton"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        arb:awesome_text="{fa_apple}" />

                    <com.ningcui.mylibrary.viewLib.segment.AwesomeRadioButton
                        android:id="@+id/button42"
                        style="@style/RadioButton"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        arb:awesome_text="VS" />

                    <com.ningcui.mylibrary.viewLib.segment.AwesomeRadioButton


                        android:id="@+id/button43"
                        style="@style/RadioButton"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        arb:awesome_text="{fa_google} " />

仿美团使用代码

 private void initView() {
        //init city menu
        final ListView cityView = new ListView(this);
        cityAdapter = new GirdDropDownAdapter(this, Arrays.asList(citys));
        cityView.setDividerHeight(0);
        cityView.setAdapter(cityAdapter);

        //init age menu
        final ListView ageView = new ListView(this);
        ageView.setDividerHeight(0);
        ageAdapter = new ListDropDownAdapter(this, Arrays.asList(ages));
        ageView.setAdapter(ageAdapter);

        //init sex menu
        final ListView sexView = new ListView(this);
        sexView.setDividerHeight(0);
        sexAdapter = new ListDropDownAdapter(this, Arrays.asList(sexs));
        sexView.setAdapter(sexAdapter);

        //init constellation
        final View constellationView = getLayoutInflater().inflate(R.layout.custom_layout, null);
        GridView constellation = ButterKnife.findById(constellationView, R.id.constellation);
        constellationAdapter = new ConstellationAdapter(this, Arrays.asList(constellations));
        constellation.setAdapter(constellationAdapter);
        TextView ok = ButterKnife.findById(constellationView, R.id.ok);
        ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mDropDownMenu.setTabText(constellationPosition == 0 ? headers[3] : constellations[constellationPosition]);
                mDropDownMenu.closeMenu();
            }
        });

        //init popupViews
        popupViews.add(cityView);
        popupViews.add(ageView);
        popupViews.add(sexView);
        popupViews.add(constellationView);

        //add item click event
        cityView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                cityAdapter.setCheckItem(position);
                mDropDownMenu.setTabText(position == 0 ? headers[0] : citys[position]);
                mDropDownMenu.closeMenu();
            }
        });

        ageView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                ageAdapter.setCheckItem(position);
                mDropDownMenu.setTabText(position == 0 ? headers[1] : ages[position]);
                mDropDownMenu.closeMenu();
            }
        });

        sexView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                sexAdapter.setCheckItem(position);
                mDropDownMenu.setTabText(position == 0 ? headers[2] : sexs[position]);
                mDropDownMenu.closeMenu();
            }
        });

        constellation.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                constellationAdapter.setCheckItem(position);
                constellationPosition = position;
            }
        });

        //init context view
        TextView contentView = new TextView(this);
        contentView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        contentView.setText("内容显示区域");
        contentView.setGravity(Gravity.CENTER);
        contentView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);

        //init dropdownview
        mDropDownMenu.setDropDownMenu(Arrays.asList(headers), popupViews, contentView);
    }

代码不定时更新 https://github.com/chinaltz/JustAndroid

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,514评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,170评论 25 708
  • 我全身都被什么东西束缚住了,手脚都不能伸展开来,更不用说自由活动了。 一直保持着一个固定的姿势,导致我全身肌肉酸疼...
    糊成粥阅读 709评论 9 3
  • 这两天,我一见到儿子就对他说:儿子我错了,对不起,请原谅,谢谢你,我爱你! 感恩师傅的点化:孩教育是一种自醒,是一...
    心如大海建英阅读 204评论 0 0
  • 他是我大学毕业前最后一年转过来的同班同学,个子不算高,长相也很普通,班上的女生说起他都会用一句,“人...
    爱做梦的小怪兽阅读 502评论 0 0

友情链接更多精彩内容