Tôi đang cố gắng thiết lập chuyển tiếp nhập và thoát cho một DialogFragment, có vẻ như đủ về phía trước. Đây là đoạn mã từ DrinkDetailActivity tôi tạo ra hộp thoại:Đặt đoạn Android nhập và thoát chuyển tiếp?
fab.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
//create and display the dialog
DialogFragment orderFragment = new OrderDrinkDialogFragment();
//set the slide transition for the fragment
Transition dialSlide = new Slide();
dialSlide.setDuration(300);
orderFragment.setEnterTransition(dialSlide);
orderFragment.setExitTransition(dialSlide);
orderFragment.show(getFragmentManager(), "order");
}
});
Và đây là mã từ OrderDrinkDialogFragment Lớp tôi:
public class OrderDrinkDialogFragment extends DialogFragment
{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
AlertDialog.Builder builder = new AlertDialog.Builder(DrinkDetailActivity.activity);
//set up the Linear Layout of the dialog
LinearLayout layout = new LinearLayout(DrinkDetailActivity.activity);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(params);
//set up the EditText view
EditText nameField = new EditText(DrinkDetailActivity.activity);
nameField.setHint(R.string.dialog_name_hint);
//add the EditText view to the layout
layout.addView(nameField, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
//set layout as the view of the dialog
builder.setView(layout);
return builder.create();
}
}
DrinkDetailActivity.activity
đơn giản this
là từ bên trong thể hiện của DrinkDetailActivity
. Vì một lý do nào đó, hộp thoại sẽ không chuyển đổi khi tôi show()
hoặc khi nó bị loại bỏ, nó sẽ xuất hiện trong và ngoài tầm nhìn. This hướng dẫn đã giúp tôi rất nhiều trong việc tìm ra các chuyển đổi Hoạt động cho phần còn lại của ứng dụng của tôi, và tôi đã làm theo hướng dẫn tương tự cho quá trình chuyển đổi phân đoạn như nó nói. Tôi đang làm gì sai?
Nếu tôi làm điều đó, tôi nhận được lỗi này: 'java.lang.NullPointerException: Cố gắng gọi android 'android.view.Window phương thức ảo'. app.Dialog.getWindow() 'trên một tham chiếu đối tượng null', mà làm cho se nse bởi vì làm thế nào tôi sẽ nhận được cửa sổ của hộp thoại trước khi nó được tạo ra? – mithunm93
hãy xem câu trả lời đã chỉnh sửa – goonerDroid
Tác phẩm này hoạt động! Với một vài thay đổi: 1) trong hoạt ảnh trượt lên, thay đổi "toXDelta" thành "toYDelta", 2) trong hoạt ảnh trượt lên, thay đổi "100%" và "0" thành "100% p" và "0% p" tương ứng và 3) Tôi đã thực hiện một hộp thoại 'Dialog = builder.create();' thay vì gọi super. Cảm ơn rất nhiều vì sự giúp đỡ của bạn! Không chắc chắn nếu tôi nên hỏi điều này ở đây, nhưng làm thế nào tôi sẽ đi về nhận được hộp thoại để trượt ra từ dưới thanh nav dưới cùng? – mithunm93