Java 在android中,左侧显示布局1,右侧显示布局2

Java 在android中,左侧显示布局1,右侧显示布局2,java,android,Java,Android,在安卓系统中,我试图根据消息来源改变布局。 如果消息来自我,则在右侧显示布局mymessage.xml,在左侧显示message.xml。 我用了if条件,但我不知道如何显示一个布局,右边,第二个在左边 @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO View messageView = null; // Get a reference

在安卓系统中,我试图根据消息来源改变布局。 如果消息来自我,则在右侧显示布局mymessage.xml,在左侧显示message.xml。 我用了if条件,但我不知道如何显示一个布局,右边,第二个在左边

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    // TODO
    View messageView = null;

    // Get a reference to the LayoutInflater. This helps construct the
    // view from the layout file
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    // Change the layout based on who the message is from
    if (messages.get(position).fromMe()) {


        messageView = inflater.inflate(R.layout.mymessage , parent, false);

        //initialization of 2 textView, message and time
        TextView timeView = (TextView) messageView.findViewById(R.id.mytimeTextView);
        timeView.setText(messages.get(position).getTime());

        TextView msgView = (TextView) messageView.findViewById(R.id.mymessageTextView);
        msgView.setText(messages.get(position).getMessage());
    } else {


        messageView = inflater.inflate(R.layout.message , parent, true);

        //initialization of 2 textView, message and time
        TextView timeView = (TextView) messageView.findViewById(R.id.timeTextView);
        timeView.setText(messages.get(position).getTime());

        TextView msgView = (TextView) messageView.findViewById(R.id.messageTextView);
        msgView.setText(messages.get(position).getMessage());

    }

    return messageView;
    }

用于left.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/msgr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_marginBottom="5dp"
        android:layout_marginRight="20dp"
        android:background="@drawable/textview"
        android:paddingBottom="8dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="5dp"
        android:text="Sampleleft"
        android:textColor="#000" />
</RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/msgr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="20dp"
        android:background="@drawable/textview"
        android:paddingBottom="5dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="5dp"
        android:text="Sample"
        android:textColor="#000" />
</LinearLayout>

用于left.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/msgr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_marginBottom="5dp"
        android:layout_marginRight="20dp"
        android:background="@drawable/textview"
        android:paddingBottom="8dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="5dp"
        android:text="Sampleleft"
        android:textColor="#000" />
</RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/msgr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="20dp"
        android:background="@drawable/textview"
        android:paddingBottom="5dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="5dp"
        android:text="Sample"
        android:textColor="#000" />
</LinearLayout>

mymessage.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content">

<TextView
    android:id="@+id/mytimeTextView"
    android:alpha="0.5"
    android:layout_alignParentRight="true"
    android:text="5:00 pm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:layout_below="@+id/mytimeTextView"
    android:id="@+id/mymessageTextView"
    android:layout_alignParentRight="true"
    android:text="mymessage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</RelativeLayout>

类似地,message.xml也是这样

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content">

<TextView
    android:id="@+id/timeTextView"
    android:alpha="0.5"
    android:layout_alignParentLeft="true"
    android:text="5:00 pm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:layout_below="@+id/timeTextView"
    android:id="@+id/messageTextView"
    android:layout_alignParentLeft="true"
    android:text="yourmessage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/receive_ll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="50dp"
        android:layout_marginRight="50dp"
        android:background="@drawable/message_box"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="visible">

        <TextView
            android:id="@+id/tv_receiver_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="User 1"
            android:textColor="@color/NavDrawerTextColor"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/tvmessagetext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="Hi"
            android:textColor="@color/MessageText"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/timestamp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:text="04:16 pm"
            android:textSize="10dp"/>


    </LinearLayout>

    <LinearLayout
        android:id="@+id/send_ll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="50dp"
        android:layout_marginStart="50dp"
        android:background="@drawable/message_sender_box"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="visible">

        <TextView
            android:id="@+id/tvmessagetext_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="user 2"
            android:textColor="@color/White"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/timestamp_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:text="Hello"
            android:textColor="@color/White"
            android:textSize="10dp"/>

    </LinearLayout>

</RelativeLayout>

mymessage.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content">

<TextView
    android:id="@+id/mytimeTextView"
    android:alpha="0.5"
    android:layout_alignParentRight="true"
    android:text="5:00 pm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:layout_below="@+id/mytimeTextView"
    android:id="@+id/mymessageTextView"
    android:layout_alignParentRight="true"
    android:text="mymessage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</RelativeLayout>

类似地,message.xml也是这样

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content">

<TextView
    android:id="@+id/timeTextView"
    android:alpha="0.5"
    android:layout_alignParentLeft="true"
    android:text="5:00 pm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:layout_below="@+id/timeTextView"
    android:id="@+id/messageTextView"
    android:layout_alignParentLeft="true"
    android:text="yourmessage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/receive_ll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="50dp"
        android:layout_marginRight="50dp"
        android:background="@drawable/message_box"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="visible">

        <TextView
            android:id="@+id/tv_receiver_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="User 1"
            android:textColor="@color/NavDrawerTextColor"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/tvmessagetext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="Hi"
            android:textColor="@color/MessageText"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/timestamp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:text="04:16 pm"
            android:textSize="10dp"/>


    </LinearLayout>

    <LinearLayout
        android:id="@+id/send_ll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="50dp"
        android:layout_marginStart="50dp"
        android:background="@drawable/message_sender_box"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="visible">

        <TextView
            android:id="@+id/tvmessagetext_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="user 2"
            android:textColor="@color/White"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/timestamp_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:text="Hello"
            android:textColor="@color/White"
            android:textSize="10dp"/>

    </LinearLayout>

</RelativeLayout>

用于message.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content">

<TextView
    android:id="@+id/timeTextView"
    android:alpha="0.5"
    android:layout_alignParentLeft="true"
    android:text="5:00 pm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:layout_below="@+id/timeTextView"
    android:id="@+id/messageTextView"
    android:layout_alignParentLeft="true"
    android:text="yourmessage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/receive_ll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="50dp"
        android:layout_marginRight="50dp"
        android:background="@drawable/message_box"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="visible">

        <TextView
            android:id="@+id/tv_receiver_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="User 1"
            android:textColor="@color/NavDrawerTextColor"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/tvmessagetext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="Hi"
            android:textColor="@color/MessageText"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/timestamp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:text="04:16 pm"
            android:textSize="10dp"/>


    </LinearLayout>

    <LinearLayout
        android:id="@+id/send_ll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="50dp"
        android:layout_marginStart="50dp"
        android:background="@drawable/message_sender_box"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="visible">

        <TextView
            android:id="@+id/tvmessagetext_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="user 2"
            android:textColor="@color/White"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/timestamp_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:text="Hello"
            android:textColor="@color/White"
            android:textSize="10dp"/>

    </LinearLayout>

</RelativeLayout>
对于message.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content">

<TextView
    android:id="@+id/timeTextView"
    android:alpha="0.5"
    android:layout_alignParentLeft="true"
    android:text="5:00 pm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:layout_below="@+id/timeTextView"
    android:id="@+id/messageTextView"
    android:layout_alignParentLeft="true"
    android:text="yourmessage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/receive_ll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="50dp"
        android:layout_marginRight="50dp"
        android:background="@drawable/message_box"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="visible">

        <TextView
            android:id="@+id/tv_receiver_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="User 1"
            android:textColor="@color/NavDrawerTextColor"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/tvmessagetext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="Hi"
            android:textColor="@color/MessageText"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/timestamp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:text="04:16 pm"
            android:textSize="10dp"/>


    </LinearLayout>

    <LinearLayout
        android:id="@+id/send_ll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="50dp"
        android:layout_marginStart="50dp"
        android:background="@drawable/message_sender_box"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="visible">

        <TextView
            android:id="@+id/tvmessagetext_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="user 2"
            android:textColor="@color/White"
            android:textSize="14dp"/>

        <TextView
            android:id="@+id/timestamp_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="5dp"
            android:text="Hello"
            android:textColor="@color/White"
            android:textSize="10dp"/>

    </LinearLayout>

</RelativeLayout>
简单点

  • 创建一个包含两个类别的布局
  • 在字段中设置数据的位置
  • 可见
    消失
    按类型显示布局

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical">
    
    <LinearLayout
        android:id="@+id/sender_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        //sender side
    </LinearLayout>
    
    <LinearLayout
        android:id="@+id/reciver_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        //reciver side
    </LinearLayout></LinearLayout>
    
    
    //发送方
    //接收端
    
  • 如果消息类型为sender,则表示可见
    发送方布局
    ,否则可见
    接收方布局

  • 创建一个包含两个类别的布局
  • 在字段中设置数据的位置
  • 可见
    消失
    按类型显示布局

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical">
    
    <LinearLayout
        android:id="@+id/sender_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        //sender side
    </LinearLayout>
    
    <LinearLayout
        android:id="@+id/reciver_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        //reciver side
    </LinearLayout></LinearLayout>
    
    
    //发送方
    //接收端
    

  • 如果邮件类型为“发件人”,则表示“发件人”布局可见,否则“收件人”布局可见,当您收到我的邮件时,显示“我的邮件”布局其他布局将隐藏,如代码下方的“make”

    if (messages.get(position).fromMe()) {
    
    
        myMessageView = inflater.inflate(R.layout.mymessage , parent, false);
        myMessageView.setVisibility(View.VISIBLE);
    
        //initialization of 2 textView, message and time
        TextView timeView = (TextView) messageView.findViewById(R.id.mytimeTextView);
        timeView.setText(messages.get(position).getTime());
    
        TextView msgView = (TextView) messageView.findViewById(R.id.mymessageTextView);
        msgView.setText(messages.get(position).getMessage());
        messageView.setVisibility(View.GONE);
    } else {
    
    
        messageView = inflater.inflate(R.layout.message , parent, true);
        messageView.setVisibility(View.VISIBLE);
    
        //initialization of 2 textView, message and time
        TextView timeView = (TextView) messageView.findViewById(R.id.timeTextView);
        timeView.setText(messages.get(position).getTime());
    
        TextView msgView = (TextView) messageView.findViewById(R.id.messageTextView);
        msgView.setText(messages.get(position).getMessage());
        myMessageView.setVisibility(View.GONE);
    }
    

    当你收到myMessage时,此时显示myMessage布局,其他布局将隐藏,如代码下方的make

    if (messages.get(position).fromMe()) {
    
    
        myMessageView = inflater.inflate(R.layout.mymessage , parent, false);
        myMessageView.setVisibility(View.VISIBLE);
    
        //initialization of 2 textView, message and time
        TextView timeView = (TextView) messageView.findViewById(R.id.mytimeTextView);
        timeView.setText(messages.get(position).getTime());
    
        TextView msgView = (TextView) messageView.findViewById(R.id.mymessageTextView);
        msgView.setText(messages.get(position).getMessage());
        messageView.setVisibility(View.GONE);
    } else {
    
    
        messageView = inflater.inflate(R.layout.message , parent, true);
        messageView.setVisibility(View.VISIBLE);
    
        //initialization of 2 textView, message and time
        TextView timeView = (TextView) messageView.findViewById(R.id.timeTextView);
        timeView.setText(messages.get(position).getTime());
    
        TextView msgView = (TextView) messageView.findViewById(R.id.messageTextView);
        msgView.setText(messages.get(position).getMessage());
        myMessageView.setVisibility(View.GONE);
    }
    

    共享
    mymessage.xml
    message.xml
    的代码。如果消息来自我,则演示如何对齐它们,右边是mymessage.xml,如果消息不是从me message.xml发送到left@kanekayp有关
    mymessage.xml
    message.xml
    的共享代码,请参见下面的答案。如果消息来自我,请演示如何对齐它们,右边是mymessage.xml,如果消息不是从me message.xml发送到left@kanekayp请看下面的答案谢谢!!但是我想要的是所有的布局都是隐藏的,但是我在messagetextView中键入消息如果消息是我键入的,那么mymessage.xml将在左侧可见,而另一条消息的mymessage.xml将在右侧。bro它将为您提供与预期相同的输出谢谢!!但是我想要的是所有的布局都是隐藏的,但是我在messagetextView中键入消息如果消息是我键入的,那么mymessage.xml将在左侧可见,而来自另一个message.xml将在右侧。bro它将为您提供与您预期相同的输出