2010-07-12 6 views
7

내 애플리케이션에 버튼이 있습니다. 프로그래밍 방식으로 위치를 변경하고 싶습니다. 다음과 같이 내가 XML에서 버튼을 만들었습니다Android 버튼 위치 프로그래밍 방식으로

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

<Button android:text="@+id/Button01" 
     android:id="@+id/Button01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="50px" 
     android:layout_marginTop="10px" 
     > 
</Button> 
</LinearLayout> 

은 가정하자 내가 (layout_marginLeft로 = "100 픽셀") 왼쪽에서 100 픽셀로 버튼의 위치를 ​​설정합니다. 프로그래밍 방식으로 어떻게 할 수 있습니까? 문제 해결을 도와주세요.

+0

사실 내 레이아웃 9 개 버튼이 있습니다 ... 그래서 일부 버튼이 condition..so에 따라 볼 수 있고 보이지 않는 내가 정렬 할 날이 점에 오게 사용 (왼쪽 또는 오른쪽으로 이동) 프로그래밍 방식으로 ... pls help –

+0

이 대답을 살펴보십시오. 버튼에 여백을 설정하는 방법을 명확하게 보여줍니다. http://stackoverflow.com/a/4594374/525541 – MindWire

답변

3

패딩과 마진이 동일하지 않습니다 ...이 스레드 당신이 Set margins in a LinearLayout programmatically

찾고있는 무슨이다
+0

이 링크는 나를 위해 도움이됩니다 ... 하지만 내 레이아웃 9 버튼이 포함되어 있습니다 ... 그래서 일부는 볼 수 있고 조건에 따라 보이지 않습니다. 그래서 프로그래밍 방식으로 (왼쪽 또는 오른쪽으로 이동) 정렬하고 싶습니다 ... pls help me –

+1

눈에 보이는 것, 보이지 않는 것 보기 가시성에 대한 숨기기 옵션입니다. http://developer.android.com/reference/android/view/View.html#GONE. 수행 할 작업에 따라 다르지만 버튼 하나를 정렬하는 데는 하나의 깨끗한 솔루션이 필요합니다. XML에서 그리고 가시성을 설정하지 않아도됩니다. 도움이되지 않는 경우 더 많은 정보를 제공해 주시면 도와 드리겠습니다. –

+0

에도 같은 문제가있었습니다. View.INVISIBLE과 그 완벽한 시도. thanks @MojoRisin – j2me

6

뷰를 가져 와서 Java 객체로 변환 한 다음 setPadding을 호출해야합니다.

이 같은 몇 가지 운동 것

Button myBtn; 
myBtn = (Button) findViewById(R.id.Button01); 
myBtn.setPadding(0,100,0,0); 

자세한 내용은 여기를 읽어 https://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

+0

그것의 작동하지 않습니다 .. setMargins 함수 아래 빨간색 선 (오류) 쇼. Android 1.5을 사용하고 있습니다. –

+0

setPadding을 시도해보십시오. – Pentium10

+0

나는 또한 시도했다 btnTest.setPadding (100,0,0,0); 하지만 그것은 100 너비와 텍스트의 버튼을 만들어 오른쪽 side.but 여전히 작동하지 않습니다 –

2

setMargin()을 btn과 함께 사용할 수 없으며 LayoutParams와 함께 사용하고 btn.setLayoutParams(params);

7

루크는

RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

rel_btn.leftMargin = myXPosition; 
rel_btn.topMargin = myYPosition; 
rel_btn.width = buttonW; 
rel_btn.height = buttonH; 

myButton.setLayoutParams(rel_btn); 
관련 문제