2013-05-19 1 views
0

아주 간단한 온라인 채팅방 앱을 만들고 있습니다.Android에서 간단한 그룹 채팅보기 만들기

Robert:blah.. 
Tom: yes blah.. 
David(You): That sounds cool! 
Lily: Do you know blah... 
Robert:blah.. 
Robert:blah.. 
David(You): Wow! Blah... 

내가 직면하고있어 새로운 기능/문제는 내가 현재 사용자의 회담이 오른쪽에 표시 할 것입니다 : 내가 달성 한 아래 지금 같은 것입니다. 아래처럼 (이 다윗은 자신의 화면에 표시되는 내용입니다) :

Robert:blah.. 
Tom: yes blah.. 
            That sounds cool! : David(You) 
Lily: Do you know blah... 
Robert:blah.. 
Robert:blah.. 
             Wow! Blah... : David(You) 

위의 각 행은 텍스트 뷰, 그리고 동적으로 이러한 텍스트 뷰가 들어있는 LinearLayout에 추가 한 후, 새 메시지있을 때마다 텍스트 뷰를 만드는거야 . David (현재 사용자)의 이야기를 오른쪽으로 만들기 위해 나는 align right를 설정하려고 시도했으며 LinearLayoutRelativeLayout으로 바꿉니다. 하지만 일단 내가 RelativeLayout을 사용하면 모든 높이가 설정되지 않았기 때문에 모든 회선이 서로 겹치는 동일한 줄에 있음을 알게됩니다. 누군가가 이걸 어떻게 달성 할 수 있는지에 대해 밝혀 줄 수 있습니까? 아래 코드 :

...  
//new messages are stored in lines[] 
for (int i = 0; i < lines.length; i++) { 

    TextView newLine = new TextView(getBaseContext()); 

    newLine.setText(lines[i]); 

    // check if the speaker of this line is user himself    
    if (speakerName.equals(userName)) { 

    //change the layout of this textView to make it align right.. 

    } 
    myLinearView.addView(newLine);//add to linearView that contains these talks 
} 
+0

listview를 사용하는 것을 고려해야합니다. 이렇게하면 textview를 추가하면 시간이 지나면 방대한 양의 메모리가 소비됩니다. –

답변

2

Chor WaiChun이 언급 한대로 반드시 ListView를 사용해야합니다. 그러나 상대 레이아웃을 사용하여이 작업을 수행하는 방법은 뷰의 RelativeLayout.layoutParams를 이전 뷰의 layout_ 아래에 설정하는 규칙으로 설정하는 것입니다. XML에서와 마찬가지로.

또한, 이전에 잘못 설명한 ListView를 사용하여 한 줄에 1 개의보기를 추가한다고해도 LinearLayout을 사용하지 않아도됩니다. 오른쪽 정렬 텍스트가있는 LinearLayout을 가질 수 있으며 중력을 오른쪽으로 설정하면됩니다.