2012-04-10 4 views
0

내 디자인에 대한 조언이 필요하며, 더 좋은 아이디어가 있거나 (나에게 동의하는 경우) 좋은 의견이 필요합니다. 웬일인지 나는 그것이 "석기 시대 프로그래밍 스타일"이지만 느끼게한다.표시 및 보이지 않는 레이아웃

기본적으로 내 xml 상대 레이아웃이 있습니다. 가운데 (세로 및 가로). 나는 어떤 사용자 입력에 따라 "어느 쪽이든"3 개의 단추 또는 3 개의 원본을 표시하고 싶다. 그래서 내가 무슨 짓을 다음

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mainLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:clipChildren="false" 
    android:clipToPadding="false" > 

    <RelativeLayout android:id="@+id/Buttons" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" > 
     <Button1 .../> 
     <Button2 .../> 
     <Button3 .../> 
    </RelativeLayout> 

    <RelativeLayout android:id="@+id/Texts" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" > 
     <TextView1 .../> 
     <TextView2.../> 
     <TextView3.../> 
    </RelativeLayout> 

</RelativeLayout> 

가 나도 눈에 보이는 또는 보이지 않는

에 대한 가시성을 설정 코드에서 사용자 입력이 괜찮은 따라? 그리고 만약에 당신은 무엇을 건의합니까? 제 생각에는

답변

2

, 당신이 원시 될 수있다했던, 그러나, 각 블록을 넣어

  1. 이 좋은 :) 인, 간단하지만 여전히 몇 가지 옵션을 원하는 만들 경우 생명이 복잡 별도의 XML로 입력하고 include을 사용하십시오.
  2. 2 개의 뷰를 만든 다음 ViewFlipper를 사용하여 사용자 요구 사항에 따라 뷰를 뒤집습니다.

하지만 간단한 요구 사항에 대해서는 잘하고 있다고 생각합니다. (가) 옵션이 같은 일을 할 포함

,

layout_1.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/Buttons" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" > 
     <Button1 .../> 
     <Button2 .../> 
     <Button3 .../> 
</RelativeLayout> 

layout_2.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/Texts" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" > 
     <TextView1 .../> 
     <TextView2.../> 
     <TextView3.../> 
</RelativeLayout> 

당신의 main_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mainLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:clipChildren="false" 
    android:clipToPadding="false" > 

    <include layout="@layout/layout_1" /> 
    <include layout="@layout/layout_2" /> 

</RelativeLayout> 

은 재사용 가능한 레이아웃을 만드는 데 도움이되며 복잡한 UI가있는 경우 xml 파일의 비율을 늘리는 데 도움이됩니다.

+0

완벽합니다. 나는 다른 옵션을보고 싶다. 정확히 내가 뭘 찾고 있었는지 .. 선물 유지를 위해 2 diffenret xml을 어떻게 넣는가? "include"에 대해 더 자세히 설명해 주시겠습니까? 나는 플리퍼를 사용하는 방법을 알고 있지만 결코 전에 포함을 보지 못했습니다 – Snake

+0

나는 include 옵션으로 답을 편집 중입니다. – Shubhayu

+0

굉장합니다. 고마워요, 내가 찾는 것을 – Snake

3

필요한 것은 View.GONEView.VISIBLE입니다.

View.GONE을 사용하면 레이아웃이 공간을 차지하지 않습니다 (마치 거의 존재하지 않는 것처럼). View.INVISIBLE을 사용자에게 사용하면 뷰 (버튼 또는 텍스트)가 보이지 않지만 화면에 그대로 남아 있으므로 다른 뷰 (버튼 또는 텍스트)가 위로 이동하거나 (보기가 사각 지대에 있지 않을 것입니다).

힌트 : 'android : layout_centerHorizontal'및 'android : layout_centerVertical'대신 'android : layout_centerInParent'를 사용할 수 있습니다.

+0

대답 해 주셔서 감사합니다. +1 – Snake

0

첫 번째 옵션은 다음과 같습니다

당신은있는 LinearLayout에있는 모든 세 개의 버튼 또는 textviews를 추가하고 android:layout_centerInParent를 사용하여 부모에 중심을 수 있습니다.

두 번째 옵션은 : 당신은 모든 세 개의 버튼 중 가운데 버튼을 중심 중간 버튼에 각각에 다른 두 개의 버튼을 조정할 수 있습니다

. 같은 방식으로 우리는 또한 textviews에 대해 이것을 반복해야합니다.이 옵션에서는 세 가지보기를 모두 View.GONE에 명시 적으로 표시해야합니다.

+0

두 번째 옵션은 안드로이드 전망보기에서 최적화되었습니다.보기 수가 줄어들었기 때문입니다. – Pavandroid

+0

답변을 주셔서 감사합니다. 제 질문은 주로 이미 센터에있는 2 개의보기를 전환하는 방법 이었지만 센터의보기 정렬에 초점을 맞추고 있다고 생각합니다. – Snake