총 게시물 39,226건, 최근 2 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

layout weight 동적변경 관련 질문

글쓴이 : 기모기 날짜 : 2017-12-27 (수) 13:55 조회 : 3037
글주소 : http://www.androidside.com/B49/169053
 
  SBS아카데미컴퓨터학원주현민
여름방학 뜨거운태양만큼 뜨거운 할인도 친구와 함께! 방학을 핫하게스펙업!레이아웃
www.sbsart-design.com
  굿잡아카데미컴퓨터학원 김정호
신촌 웹디자인,레이아웃,편집디자인,1:1멘토링 시스템. 취업시즌이벤트50%할인
goodjobcomart.co.kr
  리눅스 인강 아이티동스쿨
리눅스 인터넷 강의, 모바일 학습 가능, 강남에서 소문난 명품강사진
itsdong.com
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

프레그먼트 활용해서 레이아웃 구성 중 동적으로 가중치를 변경해야 하는 상황입니다.


=============레이아웃 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/xk_keypad_root_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="kr.co.komipo.jbportal.MainActivity">

<include
android:id="@+id/view_regist"
layout="@layout/regist_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />

<LinearLayout
android:id="@+id/layout_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp">

<LinearLayout
android:id="@+id/layout_board"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="10"
android:orientation="vertical">

<LinearLayout
android:id="@+id/area_main_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="6"
android:background="@color/colorBackground"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10">

<android.support.design.widget.TabLayout
android:id="@+id/tabLayoutMain"
style="@style/MyCustomTabLayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.3"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:tabGravity="center"
app:tabIndicatorHeight="5dp"
app:tabMode="scrollable" />

<android.support.v4.view.ViewPager
android:id="@+id/viewpagerMain"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="7.2"
android:background="@color/colorBackground" />

<Button
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.3"
android:text="더보기"/>
</LinearLayout>

</LinearLayout>

<LinearLayout
android:id="@+id/area_main_menu"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:orientation="horizontal" />

</LinearLayout>
</LinearLayout>
</LinearLayout>
화면 영역을 2개로 분리하여 
 * 상단에 뷰페이저로 여러 게시판을
 * 하단에 메뉴버튼이 있는 프레그먼트를 보여주는 구조입니다.


하단 영역에 메뉴 프레그먼트가 들어가고, 메뉴를 선택하면
프래그먼트를 replace하면서 하단 레이아웃의 가중치를 100%으로 바꿔서 서브화면을 꽉차게 표현하고,
다시 메인으로 돌아오면 처음구성처럼 6:4 비율로 보여줘야하는데...

이부분이 동적으로 컨트롤이 안되네요.

서브화면(프래그먼트)를 띄워서 전체화면에 보여지긴 하는데
다시 홈으로 돌아왔을때 비율이 단말기 마다 제멋대로 입니다.
노트5는 하단영역의 밑부분이 짤리고, 노트7은 상단2:하단8 정도 비율로 보여집니다.

weight 제어는 java 코드에서 
params.weight = 4;
menuArea.setLayoutParams(params);
params.weight = 6;
pagerArea.setLayoutParams(params);
이런식으로 하고 있습니다.

어느부분이 문제인지 조언 부탁드립니다.







질문자가 자신의 포인트 10 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 8을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

기모기 2017-12-27 (수) 18:53
자답입니다....

LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 6.0f);
LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 4.0f);
params.weigt를 하면 오버라이팅이 안되는건지..
원인은 잘 모르겠습니다..
아시는분 있으시면 답변 부탁드립니다.

댓글주소 추천 0 반대 0
     
     
허접샴푸 2017-12-29 (금) 08:16
[@기모기]
params.weight=6.0f;
params.weight=4.0f;
형태로 하면 어떻게 되나요?
댓글주소 추천 0 반대 0
          
          
허접샴푸 2017-12-29 (금) 08:17
안드로이드 공식 사이트 가보면
weight은 type이 float인데, 4, 6 정수형으로 해서 자체 타입캐스팅이 안되서 그런거 아닐까요?
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기