2013-06-03 3 views
-1

내 RelativeLayout에는 약간의 패딩이 있지만 특정 SurfaceView에 대해서는 패딩이 필요하지 않습니다. 패딩을 0dp로 설정했지만 여전히 RelativeLayout을 따릅니다. 어떻게 무시합니까?안드로이드 : RelativeLayout 무시

+1

당신은 그럼 모든 요소는 패딩을 얻는다 – anddevmanu

+0

이 좀 더 설명 할 수있다. 그러나 내가 패딩이없는 Button을 원한다고 가정 해 봅시다. 나는 android : paddingLeft를 0dp로 설정하려고 시도했다.하지만 여전히 여전히 Padding으로 시각적으로 끝났다. 그래서 RelativeLayout을 따라 갔다. 그 버튼의 레이아웃을 RelativeLayout과 다르게하고 싶습니다. – onepiece

답변

1

루트 레이아웃에서 패딩을 설정 한 경우 하위보기에 0dp 패딩을 설정해도 루트 레이아웃으로 인해 패딩이 발생합니다. 중첩 된 레이아웃을 사용하고 원하는 레이아웃에 패딩을 할당합니다. 나는 패딩이있는 RelativeLayout의이 @anddevmanu

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
          android:orientation="horizontal" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content"> 

<RelativeLayout><surfaceview></surfaceview></RelativeLayout> //add padding here if you want 

<RelativeLayout><Button></Button></RelativeLayout> //do not add padding here if you do not want 
</RelativeLayout> 
0

SurfaceView가 아닌 ​​RelativeLayout에 패딩을 설정했기를 바랍니다.

당신은 RelativeLayout의 인스턴스를 얻을 코드 아래 사용하여 런타임에 패딩을 설정할 수 있습니다

RelativeLayout element = MainLayout.findViewById(id); 

    if (element!= null) 
     element.setPadding(0.0.0.0); 

다른 접근 방법 :

당신은 당신의 자신의 위젯을 만들 수 있으며, 그들을 사용하여 레이아웃 파일.

package com.android.xxx 
public class MyRelativeLayout extends RelativeLayout { 

} 

레이아웃 파일에서 MyRelativeLayout을 사용하십시오. RelativeLayout과 같은 방식입니다.

그러나 단지 패딩을 덮어 쓰기 위해, 나는 당신이 당신의 자신의 위젯을 작성하는 것이 좋습니다되지 않습니다. 내 위, 솔루션은 그것을위한 더 나은 접근해야합니다.

+0

당신의 솔루션은 프로그램 적으로 RelativeLayout을 변경하는 것으로 보입니다. RelativeLayout과는 다른 일부 요소가 자체 레이아웃을 갖기를 원합니다. – onepiece

+0

자신의 위젯을 만들어 레이아웃 파일에서 사용할 수 있습니다. 패키지 com.android.xxx 공용 클래스 MyRelativeLayout 당신의 레이아웃 파일에 RelativeLayout의 { 을} 확장, MyRelativeLayout를 사용; RelativeLayout과 같은 방식입니다. Padding을 덮어 쓰는 것만으로도 자신 만의 위젯을 만들 것을 제안하지 않습니다. 내 위, 솔루션은 그것을위한 더 나은 접근해야합니다. –

관련 문제