1

チェックボックスを含むカスタム ダイアログを取得しました。CheckBox をチェックすると、新しいビューが作成され、Dialog に追加されます。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

ダイアログをアニメーション化することができます。このチュートリアル
を参照してください。 日本語で申し訳ありません。そして、私は日本語が読めるので、あなたも日本語が読めると思います。

于 2013-04-25T08:16:45.183 に答える