2014-04-04 1 views
0

나는이 문제로 스스로를 죽이고 있으므로 도움이 절실합니다.새로운 너비와 높이를 설정 한 후에도 다시 그리기가 수행되지 않습니다.

이미지 레이아웃과 텍스트 뷰로 구성된 선형 레이아웃으로 프로그래밍 방식으로 채워지는 맞춤 레이아웃이있는 조각이 있습니다.

사용자가 조각의 크기를 동적으로 변경할 수 있으며 여기에 문제가 있습니다.

나는 컨테이너의 크기와 관련하여 textview의 크기를 변경하는 조각보기에서 onLayoutChange listener를 설정했으며 컨테이너 크기가 변경되었지만 뷰가 다시 그려지지 않으면 모든 것이 올바르게 설정됩니다. 새로운 너비와 높이가 한번도 적용되지 않은 것처럼 오래된 너비와 높이를 가진 구식 뷰가 보입니다.

나는 textview를 무효화하려고 시도했지만 부모보기에서 requestlayout을 사용하지 않으려 고 시도했습니다.

마치 새로운보기가 설정되었지만 이전보기가 표시된 것과 같습니다.

을 Heres 코드 :

private void GenerateViews(View view) { 

    for (final Item artikl : listaArtikala) { 

     LinearLayout l_artikl = new LinearLayout(getActivity()); 
     l_artikl.setPadding(10, 5, 0, 5); 

     final ImageView img = new ImageView(getActivity());   
     img.setMinimumWidth(image_width); 
     img.setMinimumHeight(image_height); 
     img.setScaleType(ScaleType.FIT_CENTER); 

     l_artikl.addView(img); 

     final TextView txv = new TextView(getActivity()); 

    // dummy if to trigger after container size changes.   
     if(txv_artikl_width > 265) 
      txv.setWidth(300); 
     else 
      txv.setWidth(100); 

     txv.setWidth(300);    
     txv.setHeight(txv_artikl_height); 
     txv.setText(artikl.getName()); 
     txv.setTextSize(15); 
     txv.setClickable(true); 

     txv.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 
     txv.setBackgroundColor(getResources().getColor(
       R.color.LightSteelBlue)); 
     txv.setPadding(5, 0, 10, 5);    

     l_artikl.addView(txv); 

     ((ViewGroup) view).addView(l_artikl); 
    } 


    view.requestLayout(); 
} 

모든 도움을 감사합니다. 후

+0

다른 문제가 있습니다. 레이아웃에서 모든 자식 뷰를 제거한 다음 새 뷰를 생성하면 아무 것도 표시되지 않습니다. 레이아웃이 비어 있습니다. 나는 invalidate(), requestLayout()을 시도했다. – Vid

답변

0

당신의 당신이 당신의 텍스트 뷰의 폭을 다시 if 문 :

if(txv_artikl_width > 265) 
     txv.setWidth(300); 
    else 
     txv.setWidth(100); 

    txv.setWidth(300); 

당신은 아마 바로, 그렇게하고 싶지 않아?

+0

ActionBar 탭을 사용하고 있지 않습니다. 예를 들어 내가보기에 채울 사용자 지정 레이아웃을 사용하고 있습니다. textview의 내용을 채우고 런타임에 textviews의 크기를 변경하면 새로운 크기가 표시됩니다. 변경된 내용이없는 것처럼 오래된 크기가 표시됩니다. – Vid

+0

죄송합니다. 나는이 질문에 다른 대답을하고 싶었습니다. 나는 나의 대답을 조금 편집 할 것이다. –

+0

Ohh 나는 그것을 보지 못했지만 그것 없이도 여전히 동일합니다. 새 너비가 설정되어 있지만 새 매개 변수로 textview가 다시 그려지지 않습니다. :) – Vid

관련 문제