先上一张图让大家好理解是什么东西,因为我也不知道这叫做什么
这是一个弹出框加上搜索功能的,为了解决平是一些选择项数据过多,主要是针对spinner的选择项才以这种形式来实现。
下面先说原理,在网上找了好多例子却没有这种实现方法,用弹框也不行,用spinner也不可能实现,所以我就想到了用Activity实现,将Activity变成弹窗的样式,来实现这个数据搜索功能
首先注册Activity并且将他注册为弹窗的样式AndroidManifest.xml中
<activity android:name=".boat.DialogActivity"
android:theme="@style/dialogstyle">
</activity>
style文件
<style name="dialogstyle">
<!--设置dialog的背景-->
<item name="android:windowBackground">@drawable/round_editstyle</item>
<!--设置Dialog的windowFrame框为无-->
<item name="android:windowFrame">@null</item>
<!--设置无标题-->
<item name="android:windowNoTitle">true</item>
<!--是否浮现在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否半透明-->
<item name="android:windowIsTranslucent">true</item>
<!--设置窗口内容不覆盖-->
<item name="android:windowContentOverlay">@null</item>
<!--设置动画,在这里使用让它继承系统的Animation.Dialog-->
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<!--背景是否模糊显示-->
<item name="android:backgroundDimEnabled">true</item>
</style>
这样Activity就会已弹窗的形式来实现了
之后来看一下Activity中的布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ricawinter.dynamicsearch.MainActivity$PlaceholderFragment