मैं उपयोगकर्ता से कुछ इनपुट पूछने के लिए SherlockDialogFragment
का उपयोग करने का प्रयास कर रहा हूं। सब कुछ मेरे फोन (Galaxy Nexus, 4.2) पर ठीक काम करता है, लेकिन एक छोटे फोन (एमुलेटर 2.3.3) पर, जब कुंजीपटल दिखाई देता है, यह DialogFragment के दो बटन, इस तरह शामिल किया गया है:कुंजीपटल दिखाए जाने पर डायलॉगफ्रेगमेंट आकार बदल नहीं रहा
मेरा लेआउट स्क्रॉलव्यू के अंदर है, और मैं अपने onViewCreated
पर softInputMode को SOFT_INPUT_ADJUST_RESIZE
में बदल रहा हूं। मैं भी SOFT_INPUT_ADJUST_PAN
की कोशिश की, और यह
MyCustomDialog.java
public class AddTaskDialog extends SherlockDialogFragment implements OnDateSetListener{
//...
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
}
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
this.inflater = getActivity().getLayoutInflater();
View mainView =inflater.inflate(R.layout.custom_dialog, null);
builder.setView(mainView);
this.taskNote = (EditText) mainView.findViewById(R.id.ET_taskNote);
this.taskText = (EditText) mainView.findViewById(R.id.ET_taskText);
this.taskValue = (EditText) mainView.findViewById(R.id.ET_taskValue);
/*
* Other stuff
*/
builder.setTitle(getString(R.string.new_task, hType.toString()))
.setPositiveButton(R.string.dialog_confirm_button, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//...
}
})
.setNegativeButton(R.string.dialog_cancel_button, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
// Create the AlertDialog object and return it
return builder.create();
}
}
और यहाँ मेरी लेआउट है:
custom_dialog.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/abs__background_holo_light">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_vertical_margin">
<TextView
android:id="@+id/TV_taskText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/task_text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/ET_taskText"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="@string/create_task_hint"
android:inputType="textNoSuggestions"
android:singleLine="true" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_vertical_margin" >
<TextView
android:id="@+id/TV_taskNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/task_note"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/ET_taskNote"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:minLines="2"
android:layout_weight="1"
android:ems="10"
android:inputType="textMultiLine"
android:hint="@string/task_note_hint">
</EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/repeat_days"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_gravity="top"
android:orientation="horizontal"
android:visibility="gone"
android:paddingLeft="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_vertical_margin">
<!-- Day buttons are put here programatically -->
</LinearLayout>
</LinearLayout>
तो, क्या आप मेरी मदद कर सकते हैं और मुझे उन बटनों को दिखाने के तरीके पर मार्गदर्शन कर सकते हैं? दोनों ही दृश्यों पैन या इसका आकार बदल जाने के लिए ...
चूंकि यह एक संवादप्रवाह था, इसलिए इसमें मैनिफेस्ट में कोई संबद्ध गतिविधि नहीं थी, इसलिए पहला बिंदु बेकार है, लेकिन दूसरे ने इसे ठीक किया है। धन्यवाद। – MagicMicky
मैंने अपना उत्तर मैनिफेस्ट कोड के संस्करण के बारे में अधिक विशिष्ट होने के लिए संपादित किया। –
बिना 'dialog.getWindow()। SetSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);' संवाद का आकार फिर से नहीं बदला गया है? यह बग की तरह दिखता है। – neworld