问一个关于安卓下拉框spinner的问题

BIG_weibao 2018-04-13 10:44:19




要实现上面的效果,我现在只能实现成这样子:




就是说,我选择其他项后,再点下拉框,会有重叠,还有下拉框的圆角怎么设置?我用shape的话,会导致每一个选项都是圆角,现在是需要第一项的和第三项的两角圆角



...全文
1360 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
BIG_weibao 2018-04-18
  • 打赏
  • 举报
回复
需求改了,这问题暂时没继续纠结了,还是谢谢,过几天仔细看看你给的,十分感谢,
引用 3 楼 xj396282771 的回复:
我这里有个PopupWindow的例子,你把statusselect_back背景样式的颜色换成你要得,应该就差不多喽 代码: View popupView = null; popupView = mintsBase.getLayoutInflater().inflate( R.layout.statusselect_deliverinstall_layout, null, false); popupView.measure(0, 0); TextView[] statusText1 = new TextView[8]; int[] textId1 = { R.id.statusText0_statusSelectDeliverinstall, R.id.statusText1_statusSelectDeliverinstall, R.id.statusText2_statusSelectDeliverinstall, R.id.statusText3_statusSelectDeliverinstall, R.id.statusText4_statusSelectDeliverinstall, R.id.statusText5_statusSelectDeliverinstall, R.id.statusText6_statusSelectDeliverinstall, R.id.statusText7_statusSelectDeliverinstall }; for (int i = 0; i < statusText1.length; i++) { final int statusTag = i; statusText1[i] = (TextView) popupView.findViewById(textId1[i]); statusText1[i].setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { statusSelectText.setText(((TextView) v).getText() .toString().replace(" ", "")); popupwindow.dismiss(); face.statusSelect(1, statusTag); } }); } // 创建PopupWindow实例 popupwindow = new PopupWindow(popupView, popupView.getMeasuredWidth(), popupView.getMeasuredHeight()); popupwindow.setBackgroundDrawable(new BitmapDrawable()); popupwindow.setOutsideTouchable(true); popupwindow.setTouchable(true); popupwindow.setFocusable(true); popupwindow.showAsDropDown(statusSelectText, -5, -43); statusselect_deliverinstall_layout布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/statusselect_back" android:orientation="vertical" > <TextView android:id="@+id/statusText0_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:drawableRight="@drawable/pull_down3x" android:gravity="center" android:paddingRight="8dp" android:text="全部状态" android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText1_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 支 付 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText2_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 发 出 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText3_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 到 达 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText4_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 预 约 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText5_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 提 货 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText6_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 签 到 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText7_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 签 收 " android:textColor="#ffffff" android:textSize="12sp" /> </LinearLayout> statusselect_back背景样式: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#4dc8c6" /> <corners android:radius="3dp" /> <padding android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp" /> <stroke android:width="1dp" android:color="#35aeac" /> </shape> statusselect_selector点击效果 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/cube_mints_35aeac" android:state_pressed="true"></item> <item android:drawable="@color/cube_mints_4dc8c6" android:state_pressed="false"></item> <item android:drawable="@color/cube_mints_4dc8c6"></item> </selector> 颜色资源 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="cube_mints_4dc8c6">#4dc8c6</color> <color name="cube_mints_35aeac">#35aeac</color> <resources>
Jing丶無雙 2018-04-16
  • 打赏
  • 举报
回复
我这里有个PopupWindow的例子,你把statusselect_back背景样式的颜色换成你要得,应该就差不多喽 代码: View popupView = null; popupView = mintsBase.getLayoutInflater().inflate( R.layout.statusselect_deliverinstall_layout, null, false); popupView.measure(0, 0); TextView[] statusText1 = new TextView[8]; int[] textId1 = { R.id.statusText0_statusSelectDeliverinstall, R.id.statusText1_statusSelectDeliverinstall, R.id.statusText2_statusSelectDeliverinstall, R.id.statusText3_statusSelectDeliverinstall, R.id.statusText4_statusSelectDeliverinstall, R.id.statusText5_statusSelectDeliverinstall, R.id.statusText6_statusSelectDeliverinstall, R.id.statusText7_statusSelectDeliverinstall }; for (int i = 0; i < statusText1.length; i++) { final int statusTag = i; statusText1[i] = (TextView) popupView.findViewById(textId1[i]); statusText1[i].setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { statusSelectText.setText(((TextView) v).getText() .toString().replace(" ", "")); popupwindow.dismiss(); face.statusSelect(1, statusTag); } }); } // 创建PopupWindow实例 popupwindow = new PopupWindow(popupView, popupView.getMeasuredWidth(), popupView.getMeasuredHeight()); popupwindow.setBackgroundDrawable(new BitmapDrawable()); popupwindow.setOutsideTouchable(true); popupwindow.setTouchable(true); popupwindow.setFocusable(true); popupwindow.showAsDropDown(statusSelectText, -5, -43); statusselect_deliverinstall_layout布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/statusselect_back" android:orientation="vertical" > <TextView android:id="@+id/statusText0_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:drawableRight="@drawable/pull_down3x" android:gravity="center" android:paddingRight="8dp" android:text="全部状态" android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText1_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 支 付 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText2_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 发 出 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText3_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 到 达 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText4_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 预 约 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText5_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 提 货 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText6_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 签 到 " android:textColor="#ffffff" android:textSize="12sp" /> <TextView android:layout_width="74dp" android:layout_height="1dp" android:background="#35aeac" /> <TextView android:id="@+id/statusText7_statusSelectDeliverinstall" android:layout_width="74dp" android:layout_height="31dp" android:background="@drawable/statusselect_selector" android:gravity="center" android:paddingRight="18dp" android:text="已 签 收 " android:textColor="#ffffff" android:textSize="12sp" /> </LinearLayout> statusselect_back背景样式: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#4dc8c6" /> <corners android:radius="3dp" /> <padding android:bottom="1dp" android:left="1dp" android:right="1dp" android:top="1dp" /> <stroke android:width="1dp" android:color="#35aeac" /> </shape> statusselect_selector点击效果 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/cube_mints_35aeac" android:state_pressed="true"></item> <item android:drawable="@color/cube_mints_4dc8c6" android:state_pressed="false"></item> <item android:drawable="@color/cube_mints_4dc8c6"></item> </selector> 颜色资源 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="cube_mints_4dc8c6">#4dc8c6</color> <color name="cube_mints_35aeac">#35aeac</color> <resources>
头发还没秃a 2018-04-13
  • 打赏
  • 举报
回复
引用 1 楼 zhumj_zhumj 的回复:
API 21 以上重叠的问题需要添加 android:overlapAnchor="false" 解决
圆角的话应该修改的是 popupWindow 背景,自己百度一下怎么修改
头发还没秃a 2018-04-13
  • 打赏
  • 举报
回复
API 21 以上重叠的问题需要添加 android:overlapAnchor="false" 解决

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧