Когда Android Textview рисовать многострочные строки, макет перерисовывается?
Это код.
RelativeLayout layout = new RelativeLayout(this); TextView title = new TextView(this); title.setGravity(Gravity.CENTER); title.setWidth(320); title.setHeight(160) title.setText("hello"); layout.addView(title); layout.setOnTouchListener(this);
На экране, когда я перемещаю местоположение просмотра из (x:0, y:0) -> в (x: 200, y:300)
И затем установите значение TextView
title.setText("aaaaabbbbbbccccccdddddddeeeeeeeddddd");
длина строки> ширина текстового представления, поэтому многострочный дисплей
Затем произошла ошибка: "Расположение TextView вернулось к (x:0, y:0)"
если TextView отображает SingleLine, например: title.setText("aaa"); расположение TextView (х: 200, у: 300)
Является ли Android TextView отображать многострочные строки, макет перерисован? кто-нибудь может мне помочь? Я волновался всю ночь!!!
PS: та же ошибка также происходит при вызове TextView.bringToFront ();
// В Android, если вы изменили расположение вида , необходимо установить параметры макета ; в противном случае , при перерисовке вида , вид вернется в положение (0,0)。
// решение таково:
RelativeLayout.LayoutParams lpFeedback = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lpFeedback.leftMargin = v.getLeft();
lpFeedback.topMargin = v.getTop();
lpFeedback.setMargins(v.getLeft(), v.getTop(), 0, 0);
v.setLayoutParams(lpFeedback);
1 ответ
Решение
Нет, такого не бывает, вот пример кода, попробуйте это:
RelativeLayout layout = new RelativeLayout(this);
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
);
TextView title = new TextView(this);
RelativeLayout.LayoutParams tvlp = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT
);
tvlp.setMargins(200,300,0,0);
title.setLayoutParams(tvlp);
title.setGravity(Gravity.CENTER);
title.setTextColor(Color.WHITE);
title.setBackgroundColor(Color.GREEN);
title.setWidth(320);
title.setHeight(160);
title.setText("helloaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
title.setTextSize(22);
layout.addView(title);
setContentView(layout, rlp);
Надеюсь, поможет!!!