마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다른건 아니고.. 버튼 클릭시 버튼의 위치를 이동할 수 있나요?

0 추천
현재는 뷰의 오른쪽 센터에 버튼이 있습니다.

right| center 이지요.

 

이 버튼을 클릭시 레이아웃을 변경하던지 다른 방법을 쓰던지

제일 위쪽으로 옮기려고 하는데요.

right|top으로요.

버튼 api를 봐도 없는거 같구.. 어디서 찾아봐야 할런지.. 조언좀 부탁드립니다.
시험모드 (970 포인트) 님이 2013년 3월 22일 질문

2개의 답변

0 추천
 
채택된 답변

아.. 간단한 거였네요 ㅎㅎ

버튼에서는 잡을수가 없고

바로 부모 LinearLayout에 id를 준다음

소스 단에서

LinearLayout ll = (LinearLayout) findViewById(R.id.linear1);

ll.setGravity(0x11|0x05);

이런 식으로 리니어레이아웃의 gravity를 잡아 주니 이동 되네요 ㅎㅎ

아래는 gravity 속성의 숫자 값입니다.

setGravity안에는 숫자값만 넣을수가 있더라구요 . 참고하시라고 올립니다 ^^

 

Constant Value Description
top 0x30 Push object to the top of its container, not changing its size.
bottom 0x50 Push object to the bottom of its container, not changing its size.
left 0x03 Push object to the left of its container, not changing its size.
right 0x05 Push object to the right of its container, not changing its size.
center_vertical 0x10 Place object in the vertical center of its container, not changing its size.
fill_vertical 0x70 Grow the vertical size of the object if needed so it completely fills its container.
center_horizontal 0x01 Place object in the horizontal center of its container, not changing its size.
fill_horizontal 0x07 Grow the horizontal size of the object if needed so it completely fills its container.
center 0x11 Place the object in the center of its container in both the vertical and horizontal axis, not changing its size.
fill 0x77 Grow the horizontal and vertical size of the object if needed so it completely fills its container.
clip_vertical 0x80 Additional option that can be set to have the top and/or bottom edges of the child clipped to its container's bounds. The clip will be based on the vertical gravity: a top gravity will clip the bottom edge, a bottom gravity will clip the top edge, and neither will clip both edges.
clip_horizontal 0x08 Additional option that can be set to have the left and/or right edges of the child clipped to its container's bounds. The clip will be based on the horizontal gravity: a left gravity will clip the right edge, a right gravity will clip the left edge, and neither will clip both edges.
start 0x00800003 Push object to the beginning of its container, not changing its size.
end 0x00800005 Push object to the end of its container, not changing its size.

 

 

시험모드 (970 포인트) 님이 2013년 3월 22일 답변
ll.setGravity(Gravity.CENTER || Gravity.RIGHT); 하셔도 됩니다~
오~ 요렇게도 되는군요 ㅎ 감사합니다.
0 추천
button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                        LinearLayout.LayoutParams.WRAP_CONTENT,
                        LinearLayout.LayoutParams.WRAP_CONTENT);
                param.gravity = Gravity.TOP | Gravity.CENTER;
                button.setLayoutParams(param);
                //button.setLayoutParams(params)
            }
        });

 

aucd29 (218,390 포인트) 님이 2013년 3월 22일 답변
...