
우선 결과 화면입니다.
위에서 보듯이..글자가 화면을 넘어가니 , 자동줄바꿈이 안되 버리는데요.
레이아웃은 리니어이구요..
현재 화면에서 한단어는 텍스트뷰에 단순히 setText() 해서 , 한문장을 뿌려준게 아니고.
한 단어단어 마다 텍스트뷰 입니다..
그냥 문장이었으면 , "\n" 해주면 될거같기도 한데...이럴경우 어떻게 컨트롤 해서 넘어가는 부분에 대해서 , 다음 줄에 다보이게 할수있을까요..;;
st2 = new StringTokenizer(splitText , " ");
while (st2.hasMoreTokens())
{
splitTextAll = st2.nextToken().trim();
splitTextArr2.add(splitTextAll);
textView = new TextView(this);
textView.setId(id++);
textView.setTag(index++);
textView.setLineSpacing(7, 1);
textView.setText(splitTextAll+" ");
listLayout.addView(textView);
}
위 코드는 , 단어 부분의 텍스트뷰 코드 입니다.
하나 해결됐다 싶으면 다른문제가......꺼이꺼이~~
하시러는것과 동일한것을 구현해본 개발자입니다. 텍스트뷰를 동적으로 붙이실때, 레이아웃처리만으로는 힘듭니다. 이유는 TextView에 있습니다. 올리신 화면끝에 한글자라도 디스플레이가 가능할경우, TextView가 첫줄에 붙을겁니다. 그러면 TextView는 어떻게는 setText된 단어를 출력합니다. 그래서 첨부하신 화면처럼 마지막에 세로로 긴TextView에는 단어가 새로로 붙는것이고요.
addView하는 TextView를 singleline을 주셔도 마찬가지입니다. 마지막 TextView는 아마도 ... 으로 ellipsize 처리되어 표시되겠지요.
따라서 한줄에 표시가 가능한 단어수만큼 체크하여 TextView를 한라인에 addView하고 다음라인으로 넘어가서 addview하셔야 합니다.
이때 좀 걸리는게 화면끝에 남는 영역에 단어가 위치할수 있는지에 대한 조건일텐데요. 이는 글자가 폭이 다 다르기때문에 (예:영문 W와 i의 폭차이정도. ) addview될 레이아웃의 size(디스플레이할 한줄전체 길이)를 기초로 한라인에 출력될수있는 문자열을 paint.measureText(..)로 길이계산하여, 다음라인으로 넘기는방법이 있겠습니다. (저는 참고로 이방법을 word-break 안주러고 할떄 썻습니다.)




질문자 입니다.
생각해 보건데 , 윈도우사이즈는 알수 있으니 , 혹시
리니어 레이아웃에서 , 아래로 보내는거 어떻게 하나요?
예를들면 , RelativeLayout 에서 BELOW 같은 속성..있죠???그런거요~