1

我有一个自定义对话框包含一个复选框。当我检查 CheckBox 时,会创建新视图并将其添加到对话框中。如果我取消选中复选框,它将使添加的视图消失并将其更改回以前的视图。

这是它的样子。左侧图片为检查前,左侧为检查后。 在此处输入图像描述

选中对话框后,对话框布局将变大,如上图所示。

我的问题是如何使对话框布局逐渐变大而不是立即变大。像动画这样的东西,使布局逐渐扩展。

这是我迄今为止的工作。

public class CreateRoomDialogFragment extends DialogFragment {


    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the Builder class for convenient dialog construction
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        //Get layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();

        //R.layout.add_player2 is the layout shows on dialog message
        view = inflater.inflate(R.layout.createroom_dialog_fragment, null);

        roomName = (EditText)view.findViewById(R.id.createroom_dialog_roomname);
        roomKey = (EditText)view.findViewById(R.id.createroom_dialog_key);
        keyLayout = (LinearLayout)view.findViewById(R.id.keyLayout);        
        checkBoxLayout1 = (RelativeLayout)view.findViewById(R.id.createroom_dialog_layout1);
        checkBoxLayout2 = (RelativeLayout)view.findViewById(R.id.createroom_dialog_layout2);

        // lock the room with key
        checkBox1 = (CheckBox)view.findViewById(R.id.createroom_dialog_checkbox1);

        // show the key
        checkBox2 = (CheckBox)view.findViewById(R.id.createroom_dialog_checkbox2);


        checkBox1.setOnCheckedChangeListener(new CreateRoomCheckBoxListener());
        checkBox2.setOnCheckedChangeListener(new CreateRoomCheckBoxListener());
    }   

    private class CreateRoomCheckBoxListener implements OnCheckedChangeListener{

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            if(buttonView == checkBox1){
                // lock the room with key
                if(isChecked){

                    roomKey.setVisibility(View.VISIBLE);
                    checkBoxLayout2.setVisibility(View.VISIBLE);                    

                }else{

                    roomKey.setVisibility(View.GONE);
                    checkBoxLayout2.setVisibility(View.GONE);
                }

            }   
        }

    }


}
4

1 回答 1

1

可以为 Dialog 设置动画。
请参考本教程
对不起,是日文。而且由于我可以阅读日语,我假设您可以阅读日语。

于 2013-04-25T08:16:45.183 回答