2013-10-13 1 views
0

두 개의 ButtonTextView을 포함하는보기가 있습니다. 아래와 같이 그들은 RelativeLayout을 사용하여 아웃 층입니다다른 레이아웃에있을 때 Android 버튼의 높이가 동일하게 유지되도록하려면

    +-----------+ 
__TextView___  | Button 1 | 
        +-----------+ 
+-----------+ 
| Button 2 | 
+-----------+ 

여기서 키 텍스트 뷰와 버튼 1 버튼 2로 지정되어 1

버튼 layout_alignToplayout_alignBottom 의해 강제 동일한 높이를 가지고있다 TextView와 동일한 너비 (layout_alignLeftlayout_alignRight 사용).

layout_height="@id/button_1" 

내가 완전히 레이아웃의 사용을 통해이를 달성 할 수 :

문제

내가 또한 같은 것을 사용하여 버튼 1과 동일한 높이를 갖고 싶어한다는 것입니다?

그렇지 않은 경우보기를 사용하여 활동에 배포 할 수있는 코드가 있습니까? 게시 레이아웃을 표시하지만 표시하기 전에?

저는 이것을 달성하기 위해 특별한 View을 생성하는 것을 피하고 싶습니다.

iOS 지역에서는 다양한 컨트롤의 높이 또는 너비가 같지만 Android에서는이를 수행 할 방법이 없다는 것을 구체적으로 설명 할 수 있습니다.

+0

당신이 안드로이드 사용하는 경우 : layout_height = "wrap_content"와 안드로이드 : TEXTSIZE = 10sp 또는 내가 당신을 위해 같은 높이를 가질 수 추측 버튼 모두 동일한 글꼴 크기 귀하의 버튼 –

+0

@MaulikSheth 이것은 사실입니다. 그러나 명시 적으로 크기를 설정하는 것을 피하고 크기를 입력 EditText와 관련되게하고 싶습니다. –

+0

측정에 장치 독립 픽셀 (딥)을 사용하십시오. 시스템은 다른 장치와 밀도에서 동일한 크기를 보장합니다. – Kuffs

답변

0

활동에 넣고 시도에서 onCreate 방법

Button button1 = (Button) findViewById(R.id.button_1); 
Button button2 = (Button) findViewById(R.id.button_2); 
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout); 
relativeLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 

    @Override 
    public void onGlobalLayout() { 
     relativeLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this); 

     RelativeLayout.LayoutParams btParams = (RelativeLayout.LayoutParams) button2.getLayoutParams(); 
     int height = button1.getHeight(); 
     btParams.height = height; 
     button2.setLayoutParams(btParams); 
    } 
}); 
+0

그리고 편집 내 의견 이길 :) –

관련 문제