对话框中的分隔线

时间:2016-03-20 19:10:27

标签: android dialog

我注意到Google应用中非常有用的东西。

当我们有大内容的对话框时,显示分隔线以强调滚动的能力,就像在这两张图片中一样:

first second

但是,我不知道如何使用已知的utils来实现这种行为。

最好的例子是在选择电话铃声时,在开始时底部只有分频器,但是当我们开始滚动时会出现两个分频器。

enter image description here

问题

如何在对话框中实现显示和消失的行为?

3 个答案:

答案 0 :(得分:0)

您希望实现的行为带有Dialog with Scrollable Content。请阅读this document以了解相关信息。

在这种情况下,您需要使用ListView和几个按钮创建自己的自定义布局xml。您需要将整个布局保留在ScrollView

以下只是一个帮助您的虚拟代码:

使用实际的::

编辑虚拟代码

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="match_parent">

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/ListView"/>

</LinearLayout>

MainActivity.class:

 LayoutInflater inflater= LayoutInflater.from(this);
    view=inflater.inflate(R.layout.layout, null);
    ListView listView = (ListView)view.findViewById(R.id.ListView);
    String[] items = { "Milk", "Butter", "Yogurt", "Toothpaste", "Ice Cream" };
    ArrayAdapter adapter_dest = new ArrayAdapter(this,android.R.layout.simple_list_item_1,items);
    listView.setAdapter(adapter_dest);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Custom Dialog")
            .setCancelable(false)
            .setView(view)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                }
            });
    AlertDialog alert = builder.create();
    alert.show();

希望这有帮助!

答案 1 :(得分:0)

查看Android源代码,解决方案非常简单。只需将此代码添加到自定义视图中:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
   final int indicators = (hasTopPanel() ? View.SCROLL_INDICATOR_TOP : 0)
              | (hasBottomPanel() ? View.SCROLL_INDICATOR_BOTTOM : 0);
   view.setScrollIndicators(indicators, View.SCROLL_INDICATOR_TOP | View.SCROLL_INDICATOR_BOTTOM);
}

答案 2 :(得分:0)

如果你有像这样的自定义布局

working on production and development

您可以通过

来扩充View并查找ScrollView
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll_container"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

    <LinearLayout
        android:id="@+id/views_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" />
</ScrollView>

并设置滚动TOP和BOTTOM指示器,如果你有TITLE以上和BUTTONS在你的自定义视图下面

v.findViewById(R.id.scroll_container)