Reputation: 158
I'm showing a dialog when the user clicks a button. When the dialog appears and you click an EditText to enter some text, you can't see the bottom buttons (and the lowest EditText) anymore. So you have to click the keyboard down, then select the button or EditText. I searched for the answer for a while now, but i can't find it.
So: How do i make my dialog scrollable? Apparently my code doesnt do the trick:
<?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>
This is how i call for the dialog:
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();
}
});
anyone can help me out here?
Upvotes: 4
Views: 6524
Reputation: 1426
The guidelines for what you are asking are can be found here. As you can see. there are a number of ways to achieve what you are asking.
Further to this, you could consider changing default action of the 'Enter' button on the keyboard to select the next EditText and finally to submit the form when you are done (read up about it here):
android:imeOptions="actionDone"
Upvotes: 1
Reputation: 1579
GeertG... now im emotionally involved :) try the link i found... it might do the trick as far as using a scrollview with more than a single child...I dont know if it solves your issue but... If ScrollView only supports one direct child, how am I supposed to make a whole layout scrollable?
or
how to add multiple child in horizontal scroll view in android
Those solutions should work as creating a scrollview with more than 1 child... will it solve your problem? IDK...
also look in to
How to hide soft keyboard on android after clicking outside EditText?
but having the keyboard closed and re-opened seems kinda reasonable to me... dont linger on it for too long:)
Upvotes: 1
Reputation: 7439
Use LinearLayout Height match_parent. And try if its working or not.
<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">
Upvotes: 0