Android AlertDialog RecyclerView隐藏确定/取消按钮
我想使用自定义视图在“警报”对话框中显示项目列表。如果有几个项目,则会显示“确定”按钮,添加更多项目会使对话框窗口变大,直到只有列表可见为止。 这是我在对话框中设置的自定义视图,它只有列表Android AlertDialog RecyclerView隐藏确定/取消按钮,android,android-layout,android-alertdialog,Android,Android Layout,Android Alertdialog,我想使用自定义视图在“警报”对话框中显示项目列表。如果有几个项目,则会显示“确定”按钮,添加更多项目会使对话框窗口变大,直到只有列表可见为止。 这是我在对话框中设置的自定义视图,它只有列表 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:clipToPadding="true"/>
</LinearLayout>
这是C代码(我认为用java/kotlin很容易阅读)
AlertDialog.Builder=新建AlertDialog.Builder(此.Activity)
.SetPositiveButton(“OK”,(obj,ev)=>{};
视图对话框视图=(视图)this.LayoutInflater.Inflate(Resource.Layout.dialog,null);
builder.SetView(dialogView);
RecyclerView rv=dialogView.FindViewById(Resource.Id.RecyclerView);
var mLayoutManager=新的GridLayoutManager(this.Activity,4);
rv.SetLayoutManager(mLayoutManager);
MyAdapter=新的MyAdapter();
rv.设置适配器(适配器);
var items=新列表();
对于(int i=0;i<100;i++)
items.Add(i.ToString());
adapter.SetItems(项目);
AlertDialog=builder.Create();
dialog.Show();
如何使Recyclerview不覆盖OK按钮?
谢谢不要使用“设置积极按钮”(“确定”),而是在自定义布局中使用“确定”按钮并使用其单击侦听器。它会让你完全控制你的用户界面。@D_Alpha谢谢,我在RecyclerView之后添加了一个按钮,但当我添加更多项目时,它不会显示出来
AlertDialog.Builder builder = new AlertDialog.Builder(this.Activity)
.SetPositiveButton("OK", (obj, ev) => { });
View dialogView = (View)this.LayoutInflater.Inflate(Resource.Layout.dialog, null);
builder.SetView(dialogView);
RecyclerView rv = dialogView.FindViewById<RecyclerView>(Resource.Id.recyclerview);
var mLayoutManager = new GridLayoutManager(this.Activity, 4);
rv.SetLayoutManager(mLayoutManager);
MyAdapter adapter = new MyAdapter ();
rv.SetAdapter(adapter);
var items = new List<string>();
for(int i = 0; i < 100; i++)
items.Add(i.ToString());
adapter.SetItems(items);
AlertDialog dialog = builder.Create();
dialog.Show();