拍照手机
所以我想知道如何在文本和气泡之间创建一个空间。我尝试了填充,但是不知道怎么做。
由于某种原因,填充不会显示在视图上。
此外,我想知道如何使聊天成为滚动视图,以便使聊天可以一直向下进行。
这就是我当时添加文本的方式:
protected void create(Context context, View v, EditText _writetexthere, int margin) {
String inputmessage = _writetexthere.getText().toString().trim();
RelativeLayout relativeLayout = v.findViewById(R.id.rel);
TextView message = new TextView(context);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
//margin bubble
lp.setMargins(700,margin,5,5);
message.setLayoutParams(lp);
message.setText(inputmessage);
//text size
message.setTextSize(15);
message.setBackgroundResource(R.drawable.messagemine);
message.setTextColor(Color.parseColor("#FFFFFF"));
relativeLayout.addView(message);
}
谢谢,
问候劳伦兹
我的xml聊天片段:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/chatwall"
android:orientation="vertical">
<TextView
android:id="@+id/phonenumberchat"
android:layout_width="match_parent"
android:layout_height="42dp"
android:background="@android:color/white"
android:gravity="center"
android:textColor="@android:color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/imageButton"
android:layout_width="69dp"
android:layout_height="47dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginTop="70dp"
android:layout_marginEnd="15dp"
android:layout_marginBottom="5dp"
android:layout_weight="1"
android:background="@drawable/sendbutton"
android:onClick="sendmessage"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:srcCompat="@android:drawable/ic_menu_send" />
<EditText
android:id="@+id/writeTextHere"
android:layout_width="290dp"
android:layout_height="47dp"
android:layout_alignParentBottom="true"
android:layout_marginStart="10dp"
android:layout_marginBottom="5dp"
android:background="@drawable/editextround"
android:hint="Write Text here"
android:inputType="textPersonName"
android:paddingLeft="15dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="708dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="57dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</ScrollView>
</RelativeLayout>
尝试使用padding与margin以达到期望的结果。而且您应该使用LinearLayout而不是RelativeLayout从xml。
protected void create(Context context, View v, EditText _writetexthere, int margin) {
String inputmessage = _writetexthere.getText().toString().trim();
LinearLayout linearLayout = v.findViewById(R.id.message_layout);
TextView message = new TextView(context);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
//Gravity to align right
lp.gravity = Gravity.RIGHT;
lp.setMargins(0, margin, 0, margin);
//padding will give space for bubble
message.setPadding(50, margin, 50, margin);
message.setLayoutParams(lp);
message.setText(inputmessage);
//text size
message.setTextSize(15);
message.setBackgroundResource(R.drawable.test_enable);
message.setTextColor(Color.parseColor("#FFFFFF"));
linearLayout.addView(message);
}
并在ScrolView下面更改您的喜欢以滚动显示消息
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/phonenumberchat"
android:layout_above="@+id/writeTextHere">
<LinearLayout
android:id="@+id/message_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</ScrollView>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。