Left and right alignment lines inside Listview?

My goal below image

enter image description here

And I have the codes below row_right.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/me" android:layout_gravity="right" android:layout_marginLeft="5dp" android:layout_marginRight="10dp" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="5" android:layout_marginLeft="5dp" android:layout_marginRight="15dp" android:layout_gravity="right" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:orientation="horizontal" > <TextView android:id="@+id/message" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="15sp" android:textColor="#000000" android:text="TextView" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:layout_marginBottom="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="15dp" android:orientation="horizontal" > <TextView android:id="@+id/dataAndTime" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="15sp" android:textColor="#001199" android:text="gggggggghyjkljgfdgjlkhfdhklggg" /> </LinearLayout> </LinearLayout> 

row_left.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/you" android:layout_gravity="left" android:layout_marginLeft="10dp" android:layout_marginRight="5dp" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="5" android:layout_marginLeft="5dp" android:layout_marginRight="15dp" android:layout_gravity="right" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:orientation="horizontal" > <TextView android:id="@+id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="15sp" android:textColor="#000000" android:text="TextView" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:layout_marginBottom="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="15dp" android:orientation="horizontal" > <TextView android:id="@+id/dataAndTime" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="15sp" android:textColor="#001199" android:text="gggggggggg" /> </LinearLayout> </LinearLayout> 

main.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="#FFFFFF" > <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="0px" android:layout_weight="1" android:scrollbars="vertical" android:divider="@null" android:dividerHeight="0dp" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/content" android:layout_width="253dp" android:layout_height="wrap_content" android:autoText="false" android:capitalize="none" android:ems="10" android:scrollHorizontally="true" android:singleLine="true" android:textSize="16sp" android:hint="Enter text" > </EditText> <Button android:id="@+id/send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Send" /> </LinearLayout> </LinearLayout> 

but my result has become

enter image description here

How can i fix this?

Update1
my listAdapter.java

 public class ListAdapter1 extends BaseAdapter { private LayoutInflater myInflater; private List<SmsInformation> list; public ListAdapter1(Context context) { myInflater = LayoutInflater.from(context); } public void setData(List<SmsInformation> list2) { this.list = list2; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { if (list.get(position).getTypeOfSms().equals("send")) convertView = myInflater.inflate(R.layout.raw_left, null); else convertView = myInflater.inflate(R.layout.raw_right, null); holder = new ViewHolder(); holder.message = (TextView) convertView.findViewById(R.id.message); holder.dateAndTime = (TextView) convertView.findViewById(R.id.dataAndTime); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.message.setText(list.get(position).getMessageContent()); holder.dateAndTime.setText(list.get(position).geTime()+list.get(position).getDate()); return convertView; } static class ViewHolder { TextView message; TextView dateAndTime; } } 
+6
source share
2 answers

Changes made:

~ in row_right.xml and row_left.xml , the layout_width attribute of the parent LinearLayout should be set to wrap_content instead of match_parent

~ in main.xml , the layout_width attribute of the ListView must be set to match_parent . not wrap_content

Try using the following code:

~ row_right.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/me" android:layout_alignParentRight="true" android:layout_marginLeft="5dp" android:layout_marginRight="10dp" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="5" android:layout_marginLeft="5dp" android:layout_marginRight="15dp" android:layout_gravity="right" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:orientation="horizontal" > <TextView android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" android:textSize="15sp" android:textColor="#000000" android:text="TextView" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:layout_marginBottom="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="15dp" android:orientation="horizontal" > <TextView android:id="@+id/dataAndTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" android:textSize="15sp" android:textColor="#001199" android:text="gggggggghyjkljgfdgjlkhfdhklggg" /> </LinearLayout> </LinearLayout> </RelativeLayout> 

~ row_left.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="match_parent" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/you" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:layout_marginRight="5dp" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="5" android:layout_marginLeft="5dp" android:layout_marginRight="15dp" android:layout_gravity="right" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:orientation="horizontal" > <TextView android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" android:textSize="15sp" android:textColor="#000000" android:text="TextView" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:layout_marginBottom="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="15dp" android:orientation="horizontal" > <TextView android:id="@+id/dataAndTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" android:textSize="15sp" android:textColor="#001199" android:text="gggggggggg" /> </LinearLayout> </LinearLayout> </RelativeLayout> 

~ main.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="#FFFFFF" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" android:scrollbars="vertical" android:divider="@null" android:dividerHeight="0dp" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/content" android:layout_width="253dp" android:layout_height="wrap_content" android:autoText="false" android:capitalize="none" android:ems="10" android:scrollHorizontally="true" android:singleLine="true" android:textSize="16sp" android:hint="Enter text" > </EditText> <Button android:id="@+id/send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Send" /> </LinearLayout> </LinearLayout> 
+6
source

Just to guess. in main.xml change the width of your ListView to match_parent . Also add the appropriate weight to the layout containing EditText and button . Now all space will be assigned to listView.

0
source

Source: https://habr.com/ru/post/949896/


All Articles