결국 무엇이든 해내는 사람

간단한 화면 레이아웃 다루기 본문

두서없는 공부 노트/Android

간단한 화면 레이아웃 다루기

kkm8257 2020. 9. 10. 17:05
반응형

 

이렇게 만들고자한다.

자그러면 

리니어 레이아웃만 사용한다는 조건을 가질 때

 

크게 3부분으로 나눈다.

 

 

 

즉 ,  큰 레이아웃(최상단 리니어레이아웃)  안에

리니어레이아웃을 3개 넣어준다는 얘기

그러면 수직으로 쌓이니까 최상단 레이아웃은 vertical로 설정을 해준다.

 

 

 

 

그리고 맨 첫줄을 리니어 레이아웃하나를 만들어주어 그안에 텍스트 뷰를 삽입

 

이 때 첫번째 줄 리니어레이아웃은 horizontal로 설정하여 수평방향으로 진행되게끔 한다.

 

이러면 첫줄 끝

 

 

 

 

이제 두번째 줄 시작

 

똑같은 방식으로 진행하면 된다.

근데 얘는 D 와 E를 또 레이아웃으로 묶어준다

그니까 크게 3부분으로 나눈 레이아웃중 2번째 레이아웃안에서 텍스트뷰를 하나 넣어  C 를 넣어주고 그다음에 

리니어레이아웃을 만들어 vertical로 설정해준후 D와 E를 넣어준다.

그다음 그 리니어  레이아웃을 빠져나온뒤   텍스트뷰를 넣어서 투명박스D를  삽입

 

 

   <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">


<!--        밑에 C 부분의 높이를 50dp로 지정해주지말고 match_parent로 해주어야지, 화면 밖으로 안날아감-->

        <TextView
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:background="#d0ff0000"
            android:gravity="center"
            android:text="C" />


        <LinearLayout
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:orientation="vertical">

            <TextView
                android:layout_width="100dp"
                android:layout_height="25dp"
                android:background="#d00000ff"
                android:gravity="center"
                android:text="D" />
            <TextView
                android:layout_width="100dp"
                android:layout_height="25dp"
                android:background="#BCFB00FF"
                android:gravity="right"
                android:text="E"
                android:paddingRight="20dp"
                android:paddingTop="2dp"

                />

        </LinearLayout>


        <TextView
            android:gravity="bottom|center"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:text="D"/>




    </LinearLayout>

 

 

 

 

막줄이 제일 오래걸렸다.

어떻게하면 해결할 수 있을지 고민해보았는데 해답은 height 값이었다.

 

처음에는 3번째 리니어 안에 또다른 리니어를 2개를 겹치게 둔다.

하나는 horizontal 정렬 그안에 리니어는 바로 vertical정렬 그래서 

vertical 의 layout_gravity를 center로 주면 

 

 

그다음  textView의 layout_gravity를 center로주면   , 텍스트뷰의 부모레이아웃은 vertical이므로 센터가되면 가운데 정렬이 된댜

 

 

 

---------------------------------------------------------------------------------------------------------------------------

 

  참고로 , 가운데 정렬을 시도하려고하는데 처음에는 도무지 답이안나왔다 . 처음에는 수평 수직 레이아웃 둘다 높이를 match_parent를 줬거든

 

 

근데 두번째 리니어의 height 부분을 match_parent대신 wrap_content를 해주었더니

 

 

 

 

쨘 

 

 

반응형

'두서없는 공부 노트 > Android' 카테고리의 다른 글

@+id/ id작성  (0) 2020.09.10
Relative layout , 가운데 정렬  (0) 2020.09.10
wrap_content , match_parent  (0) 2020.09.10
margin과 padding  (0) 2020.09.10
gravity와 layout_gravity  (0) 2020.09.10
Comments