RelativeLayout.ALIGN_PARENT_RIGHT不起作用

时间:2012-11-30 20:08:05

标签: android android-layout

RelativeLayout.ALIGN_PARENT_RIGHT不起作用。 ((( 这是我的Android功能。 她在舞台上添加了新的信息。

我不明白。 为什么我的代码无法正常工作

        private void addMessageToStage(Message message) {

            LinearLayout scrollChatMessagesOutput = (LinearLayout) findViewById(R.id.chatMessagesOutput);

            LayoutInflater layoutInflater = getLayoutInflater();

            View view = layoutInflater.inflate(R.layout.chat_single_message, null, false);

            TextView messageTextView = (TextView) view.findViewById(R.id.singleChatMessageTextView);

            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);

            if (messagesAlignId % 2 == 0) {

                    params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);

                    messageTextView.setBackgroundResource(R.drawable.chat_input_message_shape);

            } else {

                    params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);

                    messageTextView.setBackgroundResource(R.drawable.chat_output_message_shape);

            }

            messageTextView.setText(Html.fromHtml("<b><u>" + message.getMessage() + "<font color=\"#cccccc\" size=\"4px\">" + "\n" + message.getTime() + "</font></b></u>"));

            RelativeLayout messageAlignLayout = new RelativeLayout(this);

            messageAlignLayout.addView(view, params);

            scrollChatMessagesOutput.addView(messageAlignLayout);

    }

是chat_single_message。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/chatMessage"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:orientation="horizontal"
   android:weightSum="1.0" >
    <TextView
       android:id="@+id/singleChatMessageTextView"
       style="@style/singleChatMessageTextStyle" />
</LinearLayout>

是singleChatMessageTextStyle。

<style name="singleChatMessageTextStyle" parent="@android:style/TextAppearance.Small">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_marginBottom">10dp</item>
    <item name="android:layout_marginLeft">5dp</item>
    <item name="android:layout_marginRight">5dp</item>
    <item name="android:padding">3dp</item>
    <item name="android:layout_weight">0.7</item>
    <item name="android:textColor">#000000</item>
    <item name="android:typeface">sans</item>
    <item name="android:textSize">12sp</item>
</style>

1 个答案:

答案 0 :(得分:0)

考虑使用两种不同的布局:

  • 左侧文字的布局chat_single_message_left.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/chatMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="1.0" >
    
        <TextView
            android:id="@+id/singleChatMessageTextView"
            style="@style/singleChatMessageTextStyle" />
    
        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.3" 
            android:visibility="invisible" />
    
    </LinearLayout>
    
  • 与右侧文字chat_single_message_right.xml

    类似的布局
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/chatMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="1.0" >
    
        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.3" 
            android:visibility="invisible" />
    
        <TextView
            android:id="@+id/singleChatMessageTextView"
            style="@style/singleChatMessageTextStyle" />
    
    </LinearLayout>
    

你应该使用ListView来显示每条消息而不是ScrollView,ListView的很多可以更快地进行大对话。