이거 안하는줄 알고 , 안되서 손놓고있었는데 , 다시 하게되서...질문드립니다..
다음 코드 한번 봐주십시오.
int id = 1;
int index = 0;
int id2 = 1;
int index2 = 0;
View preTextView = flowTv;
// 한문장
st = new StringTokenizer(textArray[0] , "\n");
while (st.hasMoreTokens())
{
splitText = st.nextToken().trim();
splitTextArr.add(splitText);
....중략......(체크박스 , 이미지뷰 뿌려주는 코드 있는곳..)//한단어
st2 = new StringTokenizer(splitText , " ");
while (st2.hasMoreTokens())
{
splitTextAll = st2.nextToken().trim();
splitTextArr2.add(splitTextAll);
Log.e("단어",""+splitTextAll);
textView = new TextView(this);
textView.setId(id++);
textView.setTag(index++);
textView.setLineSpacing(7, 1);
textView.setText(splitTextAll);
RelativeLayout.LayoutParams tvParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
tvParams.addRule(RelativeLayout.RIGHT_OF, volumeIv.getId());
tvParams.addRule(RelativeLayout.RIGHT_OF, preTextView.getId());
tvParams.addRule(RelativeLayout.ALIGN_TOP, selectCb.getId());
// tvParams.addRule(RelativeLayout.RIGHT_OF, preTextView.getId());
tvParams.leftMargin = 5;
mainLayout.addView(textView,tvParams);
preTextView = textView;
} //단어 while
Log.e("뉴라인","====================================================");
// RelativeLayout.LayoutParams resetParams = (RelativeLayout.LayoutParams)textView.getLayoutParams();
// resetParams.addRule(RelativeLayout.BELOW,textView.getId());
// mainLayout.setLayoutParams(resetParams);
작성하다 보니 자꾸 두개로 갈라지는데..두코드가 서로 한코드입니다...
이해를 돕기 위해 , 코드 설명을 드리자면.
하나의 문장이 있구요..( ARRAY )
" \n" 로 스프릿 햇구요..( 그럼 하나의 문짱씩 분리됩니다.)
이 분리된 문장을 , 다시 하나의 단어로 잘랐습니다.( 이유는 텍스트 하나하나 객체로 가지고 있어야 해서요.)
그리고 이걸 리스트형태로 뿌려줘야합니다..
그런데 아래와 같이 저렇게 옆으로만 붙어서 뿌려지는데요..
참고.//
코드 젤아래..ㄴ"뉴라인~~" 이라고 된 부분은 이코드에서 반복문이 한번 돌면서 , 텍스트 한라인씩 그려줍니다..
혹시나 , 끝나고 난 다음에 아래로 내리면 ,거나 왼쪽으로 붙이면 되지않을까하고...한번 작성해본거였습니다.
다음은 현재 코드의 결과화면입니다.
위 화면 처럼..텍스트가 뿌려지는데요..계속 옆으로만 붙네요...(물론 제가 그렇게 한거겠지만..)잘모르겠어서 질문드려요.
제가 원하는 화면은 원래 리스트 형태로 뿌려져야 합니다. 저 왼쪽에서 떨어진 글씨가.몽땅 왼쪽으로 붙어야 합니다.(더 정확한건 이미지 옆에 붙어야 하지만....우선은 리스트 형태로 뿌려져야 합니다..)
텍스트라 말로 설명하기 어려울거같아..화면과 같이 올렸습니다..
도움 부탁드립니다.
이왕이면 말보다는..코드같은걸로 써주시면 더 이해하기 쉬울거같습니다.
글로 써주셔도됩니다...
그럼 수고하세요~~`
네 맞습니다.
텍스트만 있으면 리니어로 해도되겠는데 앞에 체크박스랑 이미지도 같이 있어서요.
텍스트가 한줄만 이라면 , 리니어에 다 담으면 괜찮은데. 2줄이상일경우.. 텍스트 다음줄 표현이 , 앞에 이미지 아래로 붙어버리니..
그림이 이상해지더군요..
그렇다고 이미지레이아웃 따로 , 텍스트 레이아웃 따로 하자니 ,
아무튼.이거저거 그려봤느데 , 리니어는 너무 정적이라 , 딱히 힘들겠더라구요..컨트롤도 잘 안되고..
그래서 제 머리에서 현재로선.....ㅠㅠ
주석에 "뉴라인~~~" 이라고 해놓은곳에 먼가 해주면 될거같은데...딱히 방법이.ㅠ
아참 그리고 xml 에서 현재 저 화면은 , RelativeLayout 크게하나 그려져있습니다.
그게 코드에서 보이는 , mainLayout 이.. 전체화면 , 즉 Relative 입니다 .
그안에 child 는..자바코드에 보여지는 그대로입니다~




RelativeLayout.LayoutParams tvParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); tvParams.addRule(RelativeLayout.RIGHT_OF, volumeIv.getId()); tvParams.addRule(RelativeLayout.RIGHT_OF, preTextView.getId()); tvParams.addRule(RelativeLayout.ALIGN_TOP, selectCb.getId());<LinearLayout android:orientation="vertical"> <LinearLayout android:orientation="horizontal"></LinearLayout> <LinearLayout android:orientation="horizontal"></LinearLayout> . . . </LinearLayout>