我注意到Google应用中非常有用的东西。
当我们有大内容的对话框时,显示分隔线以强调滚动的能力,就像在这两张图片中一样:
但是,我不知道如何使用已知的utils来实现这种行为。
最好的例子是在选择电话铃声时,在开始时底部只有分频器,但是当我们开始滚动时会出现两个分频器。
问题
如何在对话框中实现显示和消失的行为?
答案 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)