创建像音量/亮度一样的“浮动”小部件

时间:2013-08-20 23:10:43

标签: android mobile user-interface

如何创建可以像音量/亮度小部件一样启动的UI,并且可以接受用户输入并在视图外单击时自动隐藏?

我能做的最好的就是使用WindowManager::addView,但这并不是自动隐藏的。

1 个答案:

答案 0 :(得分:0)

使用@android:style/Theme.Dialog让您的整个Activity充当对话框。

或者,使用DialogFragment。有关如何使用自定义布局样式的详细信息,请参阅here

修改

另一个提供对展示位置/行为的更多控制的选项是使用透明的Activity,只需像创建其他任何内容一样创建窗口小部件。您可以将主题设置为:

android:theme="@android:style/Theme.Translucent.NoTitleBar"

然后,创建你的布局

<?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" >

    <RelativeLayout
        android:id="@+id/floating_panel"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:drawable/panel_background" >

</RelativeLayout>

如果您知道自己一直想要的地方,可以为floating_panel添加边距,或者以编程方式设置展示位置。

如果这些都不起作用,请查看使用View作为锚点的课程PopupMenu。也许你可以用它作为起点。同样,请查看PopupWindow,使用showAtLocation(View, int, int, int)设置展示位置。

有许多选择。只取决于您寻找的行为类型。