当用户点击按钮时,我正在显示一个对话框。当对话框出现并单击EditText以输入某些文本时,您将无法再看到底部按钮(和最低的EditText)。因此,您必须单击键盘,然后选择按钮或EditText。我现在搜索了一段时间的答案,但我找不到它。
所以:我如何使我的对话框可滚动?显然我的代码没有做到这一点:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true">
<EditText
android:id="@+id/addKlantNaam"
android:textSize="20sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/klantNaam"
/>
<EditText
android:id="@+id/addKlantLocatie"
android:textSize="20sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/klantLocatie"
/>
<TextView
android:id="@+id/scheidenDoorKomma"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:text="@string/scheidenDoorKomma"/>
<EditText
android:id="@+id/addFabrieken"
android:textSize="20sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/fabrieken"
/>
<EditText
android:id="@+id/addMachines"
android:textSize="20sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/machines"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" >
<Button
android:id="@+id/dialogAnnuleren"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/annuleren"
android:textSize="22sp" />
<Button
android:id="@+id/dialogToevoegen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/dialogAnnuleren"
android:textSize="22sp"
android:text="@string/toevoegen"/>
</RelativeLayout>
</LinearLayout>
这就是我呼吁对话的方式:
btnAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// custom dialog
dialog = new Dialog(context);
dialog.setContentView(R.layout.addklant_layout);
dialog.setTitle("Klant toevoegen");
Button BTNannuleren = (Button) dialog.findViewById(R.id.dialogAnnuleren);
// if button is clicked, close the custom dialog
BTNannuleren.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
Button BTNtoevoegen = (Button) dialog.findViewById(R.id.dialogToevoegen);
// if button is clicked, close the custom dialog
BTNtoevoegen.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
StoreKlantInDatabase task = new StoreKlantInDatabase();
task.execute(urlInsertKlant);
dialog.dismiss();
}
});
dialog.show();
}
});
任何人都可以帮助我吗?
答案 0 :(得分:1)
GeertG ...现在我情绪激动:)尝试我发现的链接...它可能会使用滚动视图与多个孩子...我不知道它是否解决了你的问题但... If ScrollView only supports one direct child, how am I supposed to make a whole layout scrollable?
或
how to add multiple child in horizontal scroll view in android
这些解决方案应该像创建一个包含1个以上孩子的滚动视图一样...它会解决您的问题吗? IDK ...
也请查看
How to hide soft keyboard on android after clicking outside EditText?
但键盘关闭并重新打开对我来说似乎有点合理......不要徘徊太长时间:)
答案 1 :(得分:1)
您所询问的指南是can be found here。如你看到的。有很多方法可以实现你的要求。
除此之外,您可以考虑更改键盘上“Enter”按钮的默认操作以选择下一个EditText,最后在完成后提交表单(read up about it here):
android:imeOptions="actionDone"
答案 2 :(得分:0)
使用LinearLayout Height match_parent。并试着它的工作与否。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true">