마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

백그라운드가 원하는 사이즈로 안나옵니다.

+1 추천

container = (FrameLayout)findViewById(R.id.main_container);

params1.setLayoutParams(new FrameLayout.LayoutParams(293, 589));

params1.setLayoutParams(new FrameLayout.LayoutParams(293, 1056));

 

이렇게 두개의 백그라운드 사이즈를 마련해놨습니다.

해당 백그라운드는 

 

<FrameLayout
            android:layout_width="293dp"
            android:layout_height="wrap_content"
        android:background="@drawable/img
            android:id="@+id/main_container" >
이렇게 구성되어 있구요
 
 
현재 스피너에서 받아온 값에 따라 백그라운드 사이즈를 다르게 주려고합니다.
 
OnCreate 에
container = (FrameLayout)findViewById(R.id.main_container);
이걸 선언했구요
 
스피너에서 넘어온 값이
 
if(str_mode.equals("과일")){


     if (str_category.equals("한라봉")){
        params1.setLayoutParams(new FrameLayout.LayoutParams(293, 1056));
       }else if(str_mode.equals("낑깡"){
                params1.setLayoutParams(new FrameLayout.LayoutParams(293, 589)); 
          }
}else if(str_mode.equals("채소"){
        params1.setLayoutParams(new FrameLayout.LayoutParams(293, 589)); 
}

 

이런 식의 구성입니다.
 
초기 선택값은 과일의 한라봉입니다. 그래서 백그라운드가 길구요
 
낑깡을 선택했을때는 짧은 백그라운드가 나와야 하고
 
채소를 선택했을때도 짧은 백그라운드가 나와야 합니다.
 
그런데 백그라운드가 계속 긴게 나옵니다. 
즉 layout_height 가 계속 1056사이즈로 고정되어 나옵니다.
 
아무리 찾아봐도 원인을 모르곘습니다.
 
어디를 의심해봐야 할까요?
 
넘오어는 값은 체크해봤는데 각 조건문에 맞는 값이 넘어옵니다.
 
 
브루스웨인 (8,580 포인트) 님이 2013년 10월 10일 질문

1개의 답변

0 추천
 
채택된 답변
FrameLayout을 사용하시면 자식뷰는 부모뷰의 크기를 그대로 가지게 됩니다.

해당 FrameLayout을 LinearLayout, RelativeLayout 등 다른 ViewGroup으로 변경해보세요.
whitesnow (8,920 포인트) 님이 2013년 10월 11일 답변
브루스웨인님이 2013년 10월 14일 채택됨
...