精华内容
下载资源
问答
  • 摘要:C#源码,控件类库,ComboBox,复选框,下拉列表 C# 实现WinForm带复选框的下拉列表DLL控件,ComboBox WinForm应用,是一个DLL的源码,实现窗口中带复选框的下拉列表,源码编译后生成UCComboBox.dll,你在项目中...
  • Android自定义下拉列表控件源码

    热门讨论 2015-04-14 15:18:03
    基于android 4.4 开发的 自定义android 下拉列表控件 源码,有需要的欢迎下载哈
  • 主要介绍了python GUI库图形界面开发之PyQt5下拉列表控件QComboBox详细使用方法与实例,需要的朋友可以参考下
  • C#树形下拉列表控件

    2020-03-04 01:00:32
    C#树形下拉列表控件 非常好用的 完全源代码
  • 非常值得收藏,下载的源码资源: 1. 代码源自网络,并添加部分示例代码; 2. 自定义Combobx下拉框,支持基础控件下拉,也支持自定义控件下拉,扩展十分方便;
  • ExtJS下拉列表控件

    2019-08-07 01:04:13
    NULL 博文链接:https://init-since.iteye.com/blog/2095766
  • VB增强版ListView ComBox下拉列表控件,属性说明:  1.LVHead:列标题字符串,各列标题间半角逗号“,”隔开  2.LVWidth:列宽度,也“,”隔开,数目应与LVHead相同,值的大小取要显示的字符数  3.Style:下列...
  • 下拉列表控件

    2019-03-18 02:30:14
    NULL 博文链接:https://antivir.iteye.com/blog/687991
  • 在QTableView 中添加Combo控件,实现列表中的下拉选择控件,在Qt中Demo有了编辑框和spin的列表控件,我在demo中spin的工程中添加了combo,实现列表中的combo下拉选择控件,其他的控件也可以参考此方法开发,新加的为...
  • 扩展Android系统自带的AutoCompleteTextView控件,逐字提示,支持自定义类对象指定显示字段
  • 对WPF的ComboBox进行了扩展,现在可以在下拉列表中嵌入DataGrid/ListView/ListBox等数据控件,实现了展开后列表的自动选择,自动滚屏,并完全支持数据的绑定操作
  • 封装C#下拉列表控件

    2012-01-03 00:20:52
    封装C#下拉列表控件
  • 自己封装了一个简单的下拉列表控件,会根据控件所在屏幕位置自动计算列表是该向上还是向下弹出,调用简单。 博客:https://www.jianshu.com/p/00186b02cb04 github:https://github.com/woheduole/EBDropdownListView
  • Android自定义的下拉列表控件

    万次阅读 2017-10-20 13:49:40
    Android中的有个原生的下拉列表控件Spinner,但是这个控件有时候不符合我们自己的要求, 比如有时候我们需要类似windows 或者web网页中常见的那种下拉列表控件,类似下图这样的: 这个时候只有自己动手...

    一、概述

    Android中的有个原生的下拉列表控件Spinner,但是这个控件有时候不符合我们自己的要求,

    比如有时候我们需要类似windows 或者web网页中常见的那种下拉列表控件,类似下图这样的:

     

     

     

    这个时候只有自己动手写一个了。其实实现起来不算很难,

    本文实现的方案是采用TextView +ImageView+PopupWindow的组合方案。

    先来看看我们的自己写的控件效果图吧:(源码在文章下面最后给出哈!)

     

    二、自定义下拉列表框控件的实现

    1. 自定义控件用到的布局文件和资源:

    结果框的布局页面:dropdownlist_view.xml:


     

    复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:id="@+id/compound"
        android:background="@drawable/dropdown_bg_selector" >
        
        <TextView
            android:id="@+id/text"
            android:layout_width="250dp"
            android:layout_height="40dp"
            android:paddingLeft="10dp"
            android:text="文本文字"
            android:gravity="center_vertical"
            android:textSize="14sp"
            android:padding="5dp"
            android:singleLine="true" />
        <ImageView 
            android:id="@+id/btn"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_toRightOf="@+id/text"
            android:src="@drawable/dropdown"
            android:padding="5dp"
            android:layout_centerVertical="true"
            android:gravity="center"/>
    </RelativeLayout>
    复制代码

     

    下拉弹窗列表布局页面:dropdownlist_popupwindow.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" >
        
        <ListView
            android:id="@+id/listView"
            android:layout_width="280dp"
            android:layout_height="wrap_content"
            android:divider="#666666"
            android:dividerHeight="1dp"
             ></ListView>
    
    </LinearLayout>
    复制代码

    selector资源文件:

    dropdown_list_selector.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@color/dropdownlist_item_press"/>
        <item android:drawable="@color/dropdownlist_item"/>
    </selector>

    dropdown_bg_selector.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@color/dropdownlist_press"/>
        <item android:drawable="@color/dropdownlist_bg"/>
    </selector>

     

    复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:id="@+id/compound"
        android:background="@drawable/dropdown_bg_selector" >
        
        <TextView
            android:id="@+id/text"
            android:layout_width="250dp"
            android:layout_height="40dp"
            android:paddingLeft="10dp"
            android:text="文本文字"
            android:gravity="center_vertical"
            android:textSize="14sp"
            android:padding="5dp"
            android:singleLine="true" />
        <ImageView 
            android:id="@+id/btn"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_toRightOf="@+id/text"
            android:src="@drawable/dropdown"
            android:padding="5dp"
            android:layout_centerVertical="true"
            android:gravity="center"/>
    </RelativeLayout>
    复制代码

     

    下拉弹窗列表布局页面:dropdownlist_popupwindow.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" >
        
        <ListView
            android:id="@+id/listView"
            android:layout_width="280dp"
            android:layout_height="wrap_content"
            android:divider="#666666"
            android:dividerHeight="1dp"
             ></ListView>
    
    </LinearLayout>
    复制代码

    selector资源文件:

    dropdown_list_selector.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@color/dropdownlist_item_press"/>
        <item android:drawable="@color/dropdownlist_item"/>
    </selector>

    dropdown_bg_selector.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@color/dropdownlist_press"/>
        <item android:drawable="@color/dropdownlist_bg"/>
    </selector>

     

     

    2. 自定义下拉列表框控件类的实现:

     

    我们采用了TextView+ImageView+PopupWindow的组合方案,所以我的自定义控件需要重写ViewGroup,由于我们已经知道了,布局方向为竖直方向,所以这里,

    我直接继承LinearLayout来写这个控件。具体实现代码如下:

    复制代码
    package com.czm.xcdropdownlistview;
    
    import java.util.ArrayList;
    
    
    import android.annotation.SuppressLint;
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.PopupWindow;
    import android.widget.TextView;
    
    @SuppressLint("NewApi")
    /**
     * 下拉列表框控件
     * @author caizhiming
     *
     */
    public class XCDropDownListView extends LinearLayout{
    
        private TextView editText;
        private ImageView imageView;
        private PopupWindow popupWindow = null;
        private ArrayList<String> dataList =  new ArrayList<String>();
        private View mView;
        public XCDropDownListView(Context context) {
            this(context,null);
            // TODO Auto-generated constructor stub
        }
        public XCDropDownListView(Context context, AttributeSet attrs) {
            this(context, attrs,0);
            // TODO Auto-generated constructor stub
        }
        public XCDropDownListView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
            // TODO Auto-generated constructor stub
            initView();
        }
    
        public void initView(){
            String infServie = Context.LAYOUT_INFLATER_SERVICE;
            LayoutInflater layoutInflater;
            layoutInflater =  (LayoutInflater) getContext().getSystemService(infServie);
            View view  = layoutInflater.inflate(R.layout.dropdownlist_view, this,true);
            editText= (TextView)findViewById(R.id.text);
            imageView = (ImageView)findViewById(R.id.btn);
            this.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    if(popupWindow == null ){
                        showPopWindow();
                    }else{
                        closePopWindow();
                    }
                }
            });
        }
        /**
         * 打开下拉列表弹窗
         */
        private void showPopWindow() {  
            // 加载popupWindow的布局文件  
            String infServie = Context.LAYOUT_INFLATER_SERVICE;
            LayoutInflater layoutInflater;
            layoutInflater =  (LayoutInflater) getContext().getSystemService(infServie);
            View contentView  = layoutInflater.inflate(R.layout.dropdownlist_popupwindow, null,false);
            ListView listView = (ListView)contentView.findViewById(R.id.listView);
            
            listView.setAdapter(new XCDropDownListAdapter(getContext(), dataList));
            popupWindow = new PopupWindow(contentView,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
            popupWindow.setBackgroundDrawable(getResources().getDrawable(R.color.transparent));
            popupWindow.setOutsideTouchable(true);
            popupWindow.showAsDropDown(this);
        }
        /**
         * 关闭下拉列表弹窗
         */
        private void closePopWindow(){
            popupWindow.dismiss();
            popupWindow = null;
        }
        /**
         * 设置数据
         * @param list
         */
        public void setItemsData(ArrayList<String> list){
            dataList = list;
            editText.setText(list.get(0).toString());
        }
        /**
         * 数据适配器
         * @author caizhiming
         *
         */
        class XCDropDownListAdapter extends BaseAdapter{
    
            Context mContext;
            ArrayList<String> mData;
            LayoutInflater inflater;
            public XCDropDownListAdapter(Context ctx,ArrayList<String> data){
                mContext  = ctx;
                mData = data;
                inflater = LayoutInflater.from(mContext);
            }
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return mData.size();
            }
    
            @Override
            public Object getItem(int position) {
                // TODO Auto-generated method stub
                return null;
            }
    
            @Override
            public long getItemId(int position) {
                // TODO Auto-generated method stub
                return position;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub
                // 自定义视图
                ListItemView listItemView = null;
                if (convertView == null) {
                    // 获取list_item布局文件的视图
                    convertView = inflater.inflate(R.layout.dropdown_list_item, null);
                    
                    listItemView = new ListItemView();
                    // 获取控件对象
                    listItemView.tv = (TextView) convertView
                            .findViewById(R.id.tv);
    
                    listItemView.layout = (LinearLayout) convertView.findViewById(R.id.layout_container);
                    // 设置控件集到convertView
                    convertView.setTag(listItemView);
                } else {
                    listItemView = (ListItemView) convertView.getTag();
                }
                
                // 设置数据
                listItemView.tv.setText(mData.get(position).toString());
                final String text = mData.get(position).toString();
                listItemView.layout.setOnClickListener(new OnClickListener() {
                    
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        editText.setText(text);
                        closePopWindow();
                    }
                });
                return convertView;
            }
        
        }
        private static class ListItemView{
            TextView tv;
            LinearLayout layout;
        }
    
    }
    复制代码

     

    三、如何使用该自定义下拉列表框控件

    使用该控件和使用普通的自带的控件一样,首先需要在布局文件中引用该控件:

    复制代码
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.czm.xcdropdownlistview.MainActivity"
        tools:ignore="MergeRootFrame" >
        
        
        <com.czm.xcdropdownlistview.XCDropDownListView
            android:id="@+id/drop_down_list_view"
            android:layout_marginTop="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true" />
        
        </RelativeLayout>
    复制代码

    其次,就是在代码中使用该控件:

    复制代码
    package com.czm.xcdropdownlistview;
    
    import java.util.ArrayList;
    
    import android.app.Activity;
    import android.os.Bundle;
    /**
     * 使用下拉列表框控件 示例
     * @author caizhiming
     *
     */
    public class MainActivity extends Activity {
    
        XCDropDownListView dropDownListView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            dropDownListView = (XCDropDownListView)findViewById(R.id.drop_down_list_view);
            ArrayList<String> list = new ArrayList<String>();
            for(int i = 0;i< 6;i++){
                list.add("下拉列表项"+(i+1));
            }
            dropDownListView.setItemsData(list);
    
        }
    
    }
    复制代码

    对了,这个控件中,我没有实现点击item项回调接口,这个可能对有些写惯了回调的可能觉得少了写什么的感觉,有兴趣的你可以自己添加相关回调操作哈,这个大家应该都会把。

    四、源码下载

    最后给出源码的下载:
    http://download.csdn.net/download/u013068887/10031736

    本文参考:
    http://www.cnblogs.com/JczmDeveloper/p/4425010.html

     

    复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:id="@+id/compound"
        android:background="@drawable/dropdown_bg_selector" >
        
        <TextView
            android:id="@+id/text"
            android:layout_width="250dp"
            android:layout_height="40dp"
            android:paddingLeft="10dp"
            android:text="文本文字"
            android:gravity="center_vertical"
            android:textSize="14sp"
            android:padding="5dp"
            android:singleLine="true" />
        <ImageView 
            android:id="@+id/btn"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_toRightOf="@+id/text"
            android:src="@drawable/dropdown"
            android:padding="5dp"
            android:layout_centerVertical="true"
            android:gravity="center"/>
    </RelativeLayout>
    复制代码

    下拉弹窗列表布局页面:dropdownlist_popupwindow.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" >
        
        <ListView
            android:id="@+id/listView"
            android:layout_width="280dp"
            android:layout_height="wrap_content"
            android:divider="#666666"
            android:dividerHeight="1dp"
             ></ListView>
    
    </LinearLayout>
    复制代码

    selector资源文件:

    dropdown_list_selector.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@color/dropdownlist_item_press"/>
        <item android:drawable="@color/dropdownlist_item"/>
    </selector>

    dropdown_bg_selector.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@color/dropdownlist_press"/>
        <item android:drawable="@color/dropdownlist_bg"/>
    </selector>

     

     

    展开全文
  • 一个下拉显示数据的控件,和系统自带的区别,可以添加多条记录,使用在DELPHI6.0上面。
  • VB 实现Combox下拉列表颜色选择控件 ,完美实现,代码完面!!
  • 下拉列表demo

    2016-05-26 09:46:39
    直接导入android studio,组合控件下拉列表菜单demo,spinner和PopupWindow简单实现下拉菜单。
  • 可输入的下拉列表控件jquery.editable-select,官方的控件不支持<option value='1'>2无法获得value 的值,经过修改,可以获得到value 值,很方便使用
  • 元素实现一个下拉列表,在其中每个下拉列表项使用表示即可。这是在Web开发中一个必不可少的交互性组件,而在Android中的对应实现就是Spinner。 方法一: 以资源方式,静态展示 Spinner 选项: <Spinner android...
  • 带有CheckBox的下拉列表ComboBox控件 可用于Delphi 6,C++ Builder 6
  • 1.QQ:513187410 2.保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
  • 这是一款用于美化下拉列表菜单控件的jquery插件ddlist。使用该ddlist下拉列表美化插件可以为下拉列表添加图标,增强下拉列表的默认功能等。在美化的同时使下拉列表功能得到增强。
  • JS下拉按钮列表控件

    2012-12-16 22:35:11
    两款下拉列表控件,鼠标移至菜单上,动画显示出下拉列表
  • 标签下拉列表控件.zip

    2019-07-05 00:24:52
    标签下拉列表控件是一款用于标签和下拉列表功能的选择控件Selectize。
  • 可能开发安卓的人大多数都过很多下拉刷新的开源组件,但是今天了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享。 简介: SwipeRefreshLayout组件只接受一个子组件:即需要刷新的那个组件...
  • LVGL GUI下拉列表控件的概念 下拉列表允许用户从列表中选择一个值。下拉列表默认情况下处于关闭状态,并显示单个值或预定义的文本。激活后(通过单击下拉列表),将创建一个列表,用户可以从中选择一个选项。当...

    一. LVGL GUI下拉列表控件的概念

    下拉列表允许用户从列表中选择一个值。下拉列表默认情况下处于关闭状态,并显示单个值或预定义的文本。激活后(通过单击下拉列表),将创建一个列表,用户可以从中选择一个选项。当用户选择新值时,该列表将被删除。

    二. LVGL GUI下拉列表小部件和样式

    调用下拉列表的主要部分, LV_DROPDOWN_PART_MAIN 它是一个简单的 lv_obj 对象。它使用所有典型的背景属性。按下,聚焦,编辑等阶梯也照常应用。
    单击主对象时创建的列表是 Page。它的背景部分可以被引用, LV_DROPDOWN_PART_LIST 并为矩形本身使用所有典型的背景属性,并为选项使用文本属性。要调整选项之间的间距,请使用
    text_line_space 样式属性。填充值可用于在边缘上留出一些空间。页面的可滚动部分被隐藏,其样式始终为空(透明,无填充)。
    滚动条可以被引用 LV_DROPDOWN_PART_SCRLBAR 并使用所有典型的背景属性。
    可以 LV_DROPDOWN_PART_SELECTED 使用所有典型的背景属性引用并使用所选的选项。它将以其默认
    状态在所选选项上绘制一个矩形,并在按下状态下在被按下的选项上绘制一个矩形

    三. LVGL GUI下拉列表控件的使用

    1. 设置选项(Set options)

    有集中方法来设置下拉列表中的选项:

    • lv_dropdown_set_options(dropdown, options)
    • lv_dropdown_add_option(dropdown, "New option", pos)

    用这个函数lv_dropdown_set_selected来设置默认的选择的选项

    我们写一个程序创建3个下拉列表,第一个用lv_dropdown_set_options这种方法,第二个用这个方法lv_dropdown_add_option,第三个默认不添加,自己看效果体验下

    void lvgl_dlist_set_option_test(void)
    {
        lv_obj_t* ddlist1 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_dropdown_set_options(ddlist1, "0\n1\n2\n3");
        lv_obj_set_pos(ddlist1,100,100);
        lv_dropdown_set_selected(ddlist1,0);
    
        lv_obj_t* ddlist2 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_dropdown_add_option(ddlist2,"0",0);
        lv_dropdown_add_option(ddlist2, "1", 1);
        lv_dropdown_add_option(ddlist2, "2", 2);
        lv_dropdown_add_option(ddlist2, "3", 3);
        lv_dropdown_set_selected(ddlist2, 1);
        lv_obj_set_pos(ddlist2, 300, 100);
    
        lv_obj_t* ddlist3 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_obj_set_pos(ddlist3, 500, 100);
    }

    我们来实验下效果:

    2. 获取选择的选项(Get selected option)

    用这个函数lv_dropdown_get_selected_str(dropdown, buf, buf_size)来获取选择的选项,一般跟event配合来使用,在event的时候我们再来写代码

    3. 方向(Direction)

    下拉列表的方向,用这个函数设置lv_dropdown_set_dir(dropdown, LV_DROPDOWN_DIR_LEFT/RIGHT/UP/DOWN)

    我们来体验下:

    void lvgl_dlist_direct_test(void)
    {
        lv_obj_t* ddlist1 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_obj_set_pos(ddlist1, 100, 300);
        lv_dropdown_set_dir(ddlist1, LV_DROPDOWN_DIR_DOWN);
    
        lv_obj_t* ddlist2 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_obj_set_pos(ddlist2, 300, 300);
        lv_dropdown_set_dir(ddlist2, LV_DROPDOWN_DIR_UP);
    
        lv_obj_t* ddlist3 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_obj_set_pos(ddlist3, 500, 300);
        lv_dropdown_set_dir(ddlist3, LV_DROPDOWN_DIR_LEFT);
    
        lv_obj_t* ddlist4 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_obj_set_pos(ddlist4, 700, 300);
        lv_dropdown_set_dir(ddlist4, LV_DROPDOWN_DIR_RIGHT);
    }

    4. 符号(Symbol)

    设置下拉列表的符号,如图红框位置就是设置的符号,用这个函数设置lv_dropdown_set_symbol(ddlist3, LV_SYMBOL_LEFT);

    对应的代码如下:

    void lvgl_dlist_symbol_test(void)
    {
        lv_obj_t* ddlist1 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_dropdown_set_options(ddlist1, "0\n1\n2\n3");
        lv_obj_set_pos(ddlist1, 100, 300);
        lv_dropdown_set_dir(ddlist1, LV_DROPDOWN_DIR_DOWN);
        lv_dropdown_set_symbol(ddlist1, LV_SYMBOL_DOWN);
    
        lv_obj_t* ddlist2 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_dropdown_set_options(ddlist2, "0\n1\n2\n3");
        lv_obj_set_pos(ddlist2, 300, 300);
        lv_dropdown_set_dir(ddlist2, LV_DROPDOWN_DIR_UP);
        lv_dropdown_set_symbol(ddlist2, LV_SYMBOL_UP);
    
        lv_obj_t* ddlist3 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_dropdown_set_options(ddlist3, "0\n1\n2\n3");
        lv_obj_set_pos(ddlist3, 500, 300);
        lv_dropdown_set_dir(ddlist3, LV_DROPDOWN_DIR_LEFT);
        lv_dropdown_set_symbol(ddlist3, LV_SYMBOL_LEFT);
    
        lv_obj_t* ddlist4 = lv_dropdown_create(lv_scr_act(), NULL);
        lv_dropdown_set_options(ddlist4, "0\n1\n2\n3");
        lv_obj_set_pos(ddlist4, 700, 300);
        lv_dropdown_set_dir(ddlist4, LV_DROPDOWN_DIR_RIGHT);
        lv_dropdown_set_symbol(ddlist4, LV_SYMBOL_RIGHT);
    }

    5. 最大高度(Maximum height)

    通过这个函数来设置lv_dropdown_set_max_height(dropdown, height)

    6. 显示选择(Show selected)

    主要部分可以显示所选选项或静态文本。可以用这个函数lv_dropdown_set_show_selected(sropdown, true/false)设置

    7. 动画时间(Animation time)

    其实在最新版本中,我并没有找到这个函数

    8. 手动开启/关闭(Manually open/close)

    用这个函数lv_dropdown_open/close(dropdown, LV_ANIM_ON/OFF)打开跟关闭

    9. 事件(Event)

    除了基本的事件外,我们来看下这个当选择值改变的时候产生的事件

    LV_EVENT_VALUE_CHANGED - Sent when the new option is selected.

    我们来看下程序

    static void droup_list_event_handler(lv_obj_t* obj, lv_event_t event)
    {
        if (event == LV_EVENT_VALUE_CHANGED) {
            char buf[32];
            lv_dropdown_get_selected_str(obj, buf, sizeof(buf));
            printf("Option: %s\n", buf);
        }
    }
    
    void lvgl_drop_list_test1(void)
    {
    
        /*Create a normal drop down list*/
        lv_obj_t* ddlist = lv_dropdown_create(lv_scr_act(), NULL);
        lv_dropdown_set_options(ddlist, "Apple\n"
            "Banana\n"
            "Orange\n"
            "Melon\n"
            "Grape\n"
            "Raspberry");
    
        lv_obj_align(ddlist, NULL, LV_ALIGN_IN_TOP_MID, 0, 20);
        lv_obj_set_event_cb(ddlist, droup_list_event_handler);
    }

    看下效果图

    好了,完结了,更多精彩继续戳↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    展开全文
  • 时间控件 js 下拉列表时间控件 日历 时间控件 js 下拉列表时间控件 日历时间控件 js 下拉列表时间控件 日历时间控件 js 下拉列表时间控件 日历时间控件 js 下拉列表时间控件 日历
  • Android Spinner:下拉列表控件

    千次阅读 2019-07-14 21:25:03
    Spinner 提供下拉列表式的输入方式,该方法可以有效节省手机屏幕上的显示空间。 下面一个简单的实例讲解 Spinner 的使用方法。在工程 WidgetDemo 的布局文件 main.xml 中添加一个 Button,以启动 ...

    Spinner 提供下拉列表式的输入方式,该方法可以有效节省手机屏幕上的显示空间。

    下面用一个简单的实例讲解 Spinner 的使用方法。在工程 WidgetDemo 的布局文件 main.xml 中添加一个 Button,用以启动 SpinnerActivity。

    在 main.xml 中添加代码如下:

     
    1. <Button
    2. android:id="@+id/button4"
    3. android:layout_width="wrap_content"
    4. android:layout_height="wrap_content"
    5. android:text="SpinnerDemo"/>

    单击 Button 并启动 SpinnerActivity 的代码如下

     
    1. Button spinnerbtn = (Button) this.findViewById(R.id.button4);
    2. spinnerbtn.setOnClickListener(new View.OnClickListener() {
    3. @Override
    4. public void onClick(View v) {
    5. Intent intent = new Intent(MainActivity.this, SpinnerActivity.class);
    6. startActivity(intent);
    7. }
    8. });

    同时在 AndroidManifest.xml 文件中声明该 Activity:

    <activity android:name=".SpinnerActivity "></activity>

    SpinnerActivity 的运行效果如图 1 所示。

    Spinner的应用界面
    图 1  Spinner 的应用界面


    SpinnerActivity 使用的布局文件为 spiner.xml,其代码如下:

     
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. android:layout_width="match_parent"
    4. android:layout_height="match_parent"
    5. android:orientation="vertical">
    6. <TextView
    7. android:id="@+id/textView1"
    8. android:layout_width="wrap_content"
    9. android:layout_height="wrap_content"
    10. android:text="textview"/>
    11. <Spinner
    12. android:id="@+id/spinner1"
    13. android:layout_width="match_parent"
    14. android:layout_height="wrap_content"/>
    15. </LinearLayout>

    SpinnerActivity.java 文件的代码如下:

     
    1. package introduction.android.widgetDemo;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.List;
    5.  
    6. import android.app.Activity;
    7. import android.os.Bundle;
    8. import android.view.MotionEvent;
    9. import android.view.View;
    10. import android.widget.AdapterView;
    11. import android.widget.ArrayAdapter;
    12. import android.widget.Spinner;
    13. import android.widget.TextView;
    14.  
    15. public class SpinnerActivity extends Activity {
    16.  
    17. private List<String> list = new ArrayList<String>();
    18. private TextView textview;
    19. private Spinner spinnertext;
    20. private ArrayAdapter<String> adapter;
    21.  
    22. public void onCreate(Bundle savedlnstanceState) {
    23. super.onCreate(savedlnstanceState);
    24. setContentView(R.layout.spiner);
    25. //第一步:定义下拉列表内容
    26. list.add("A型");
    27. list.add("B型");
    28. list.add("O型");
    29. list.add("AB型");
    30. list.add("其他");
    31. textview = (TextView) findViewByld(R.id.textViewl);
    32. spinnertext = (Spinner) findViewByld(R.id.spinnerl);
    33. //第二步:为下拉列表定义一个适配器
    34. adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
    35. //第三步:设置下拉列表下拉时的菜单样式
    36. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    37. //第四步:将适配器添加到下拉列表上
    38. spinnertext.setAdapter(adapter);
    39. //第五步:添加监听器,为下拉列表设置事件的响应
    40. spinnertext.setOnltemSelectedListener(new Spinner.OnltemSelectedListener() {
    41. public void onltemSelected(AdapterView<?> argO, View argl, int arg2, long arg3) {
    42. // TODO Auto-generated method stub
    43. /* 将所选spinnertext的值带入myTextView中*/
    44. textview.setText("你的血型是:" + adapter.getItem(arg2));
    45. /* 将 spinnertext 显示^*/
    46. argO.setVisibility(View.VISIBLE);
    47. }
    48.  
    49. public void onNothingSelected(AdapterView<?> argO) {
    50. // TODO Auto-generated method stub
    51. textview.setText("NONE");
    52. argO.setVisibility(View.VISIBLE);
    53. }
    54. });
    55.  
    56. //将spinnertext添加到OnTouchListener对内容选项触屏事件处理
    57. spinnertext.setOnTouchListener(new Spinner.OnTouchListener() {
    58. @Override
    59. public boolean onTouch(View v, MotionEvent event) {
    60. // TODO Auto-generated method stub
    61. // 将mySpinner隐藏
    62. v.setVisibility(View.INVISIBLE);
    63. Log.i("spinner", "Spinner Touch事件被触发!");
    64. return false;
    65. }
    66. });
    67.  
    68. //焦点改变事件处理
    69. spinnertext.setOnFocusChangeListener(new Spinner.OnFocusChangeListener() {
    70. public void onFocusChange(View v, boolean hasFocus) {
    71. // TODO Auto-generated method stub
    72. v.setVisibility(View.VISIBLE);
    73. Log.i("spinner", "Spinner FocusChange事件被触发!");
    74. }
    75. });
    76.  
    77. }
    78. }

    SpinnerActivity 通过 5 个步骤将 Spinner 初始化并进行事件处理,分别为:

    • 定义下拉列表的列表项内容 List<String>。
    • 为下拉列表 Spinner 定义一个适配器 ArrayAdapter<String> ,并与列表项内容相关联。
    • 使用 ArrayAdapter.setDropDownViewResource() 设置 Spinner 下拉列表在打开时的下拉菜单样式。
    • 使用 Spinner. setAdapter() 将适配器数据与 Spinner 关联起来。
    • 为 Spinner 添加事件监听器,进行事件处理。


    在本实例中,SpinnerActivity 在程序代码中动态建立了下拉列表每一项的内容。除此之外,还可以在 XML 文件中定义 Spinner 的下拉列表项,步骤如下。

    1)在 res/values 文件夹下新建 cities.xml 文件夹:

     
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <resources>
    3. <string-array name="city">
    4. <item>A型</item>
    5. <item>B型</item>
    6. <item>AB型</item>
    7. <item>O型</item>
    8. <item>其他</item>
    9. </string-array>
    10. </resources>

    2)在 SpinnerActivity.java 中初始化 Spinner:

     
    1. Spinner spinner=(Spinner)findViewById(R.id.spinner1);
    2. ArrayAdapter<CharSequence> adapter=ArrayAdapter.createF
    3. romResource(this, R.array.city,android.R.layout.simple_spinner_item);
    4. adapter.setDropDownViewResource
    5. (android.R.layout.simple_spinner_dropdown_item);
    6. spinner.setAdapter(adapter);
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,984
精华内容 25,993
关键字:

下拉列表内容控件怎么用