나는이 문제로 스스로를 죽이고 있으므로 도움이 절실합니다.새로운 너비와 높이를 설정 한 후에도 다시 그리기가 수행되지 않습니다.
이미지 레이아웃과 텍스트 뷰로 구성된 선형 레이아웃으로 프로그래밍 방식으로 채워지는 맞춤 레이아웃이있는 조각이 있습니다.
사용자가 조각의 크기를 동적으로 변경할 수 있으며 여기에 문제가 있습니다.
나는 컨테이너의 크기와 관련하여 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();
}
모든 도움을 감사합니다. 후
다른 문제가 있습니다. 레이아웃에서 모든 자식 뷰를 제거한 다음 새 뷰를 생성하면 아무 것도 표시되지 않습니다. 레이아웃이 비어 있습니다. 나는 invalidate(), requestLayout()을 시도했다. – Vid