如何打造Android自定义的下拉列表框控件
展开全部
实现方式:
1、水平布局一个TextView和一个ImageView(小黑箭头)
2、实现点击ImageView的单击事件,弹出PopupWindow
3、PopupWindow中实现下拉列表
关键代码示例:
1、布局
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView/>
<ImageView />
</LinearLayout>
2、单击事件
image.setBackgroundResource(R.drawable.gerendang_jiantou);
image.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//弹出popupwindow
}
});
3、pupupwindow相关代码
ListView lv = new ListView(this);
adapter = new OptionsAdapter(context, datas); // 根据数据,设置下拉框显示
list.setAdapter(adapter);
/**
* 两种不同长度的下拉框,主要是为了适应屏幕的大小
*/
if (p_width > 0) {
pWindow = new PopupWindow(v, par.getWidth(), 150);
} else {
pWindow = new PopupWindow(v, par.getWidth(), 300);
}
pWindow.setFocusable(true); //能够焦点获得
pWindow.setBackgroundDrawable(new BitmapDrawable()); //设置背景
pWindow.setOutsideTouchable(true); //外部点击关闭
pWindow.update(); //更新位置
1、水平布局一个TextView和一个ImageView(小黑箭头)
2、实现点击ImageView的单击事件,弹出PopupWindow
3、PopupWindow中实现下拉列表
关键代码示例:
1、布局
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView/>
<ImageView />
</LinearLayout>
2、单击事件
image.setBackgroundResource(R.drawable.gerendang_jiantou);
image.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//弹出popupwindow
}
});
3、pupupwindow相关代码
ListView lv = new ListView(this);
adapter = new OptionsAdapter(context, datas); // 根据数据,设置下拉框显示
list.setAdapter(adapter);
/**
* 两种不同长度的下拉框,主要是为了适应屏幕的大小
*/
if (p_width > 0) {
pWindow = new PopupWindow(v, par.getWidth(), 150);
} else {
pWindow = new PopupWindow(v, par.getWidth(), 300);
}
pWindow.setFocusable(true); //能够焦点获得
pWindow.setBackgroundDrawable(new BitmapDrawable()); //设置背景
pWindow.setOutsideTouchable(true); //外部点击关闭
pWindow.update(); //更新位置
2016-03-16 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
使用popupwindow很好,比默认的要好看多了。
popupwindow显示提供了两种形式:
showAtLocation()显示在指定位置,有两个方法重载:
public void showAtLocation(View parent, int gravity, int x, int y)
public void showAtLocation(IBinder token, int gravity, int x, int y)
showAsDropDown()显示在一个参照物View的周围,有三个方法重载:
public void showAsDropDown(View anchor)
public void showAsDropDown(View anchor, int xoff, int yoff)
public void showAsDropDown(View anchor, int xoff, int yoff, int gravity)
popupwindow显示提供了两种形式:
showAtLocation()显示在指定位置,有两个方法重载:
public void showAtLocation(View parent, int gravity, int x, int y)
public void showAtLocation(IBinder token, int gravity, int x, int y)
showAsDropDown()显示在一个参照物View的周围,有三个方法重载:
public void showAsDropDown(View anchor)
public void showAsDropDown(View anchor, int xoff, int yoff)
public void showAsDropDown(View anchor, int xoff, int yoff, int gravity)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-07-21
展开全部
1.下拉列表使用Spinner。2.布局:android:layout_width="fill_parent"android:layout_height="wrap_content"3.实现1)新增选择内容:String[]m={"A型","B型","O型","AB型","其他"};2)初始化设配器:privateArrayAdapteradapter=newArrayAdapter(this,android.R.layout.simple_spinner_item,m);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//设置下拉列表的风格spinner.setAdapter(adapter);//将adapter添加到spinner中spinner.setOnItemSelectedListener(newSpinnerSelectedListener());//添加事件Spinner事件监听3)新建Spinner监听器classSpinnerSelectedListenerimplementsOnItemSelectedListener{publicvoidonItemSelected(AdapterView?arg0,Viewarg1,intarg2,longarg3){view.setText("你选择的值:"+m[arg2]);//设置编辑框为获取到的选择值}publicvoidonNothingSelected(AdapterView?arg0){}}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-07-26
展开全部
As long sections of bare
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询