我正在尝试构建android应用程序的前端视图。我必须将整个显示动态地推到屏幕的右侧。
我想将整个相对布局推到屏幕右侧。
以下是我的XML代码:
startdate = str(startdate)[0:10] #This truncates the string to the first 10 digits
enddate = str(enddate)[0:10]
我想动态地做。
我尝试将 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/message_single_layout"
android:padding="10dp"
android:layout_gravity=""
android:weightSum="10">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/message_profile_layout"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_weight="0"
android:src="@drawable/default_avatar" />
<TextView
android:layout_alignParentRight="true"
android:id="@+id/message_text_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/name_text_layout"
android:layout_marginLeft="10dp"
android:layout_toEndOf="@+id/message_profile_layout"
android:padding="10dp"
android:background="@drawable/their_message"
android:text="Message Text"
android:textColor="@color/colorPrimary"
android:textSize="14sp" />
<TextView
android:id="@+id/name_text_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:layout_toEndOf="@+id/message_profile_layout"
android:text="Display Name"
android:textColor="@android:color/black"
android:textSize="15sp"
android:textStyle="bold"
/>
<TextView
android:id="@+id/time_text_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/message_text_layout"
android:layout_marginStart="-15dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="4dp"
android:layout_toEndOf="@+id/name_text_layout"
android:text="00:00"
android:textSize="12sp" />
<ImageView
android:id="@+id/message_image_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/message_text_layout"
android:layout_alignStart="@+id/message_text_layout"
android:layout_alignParentEnd="true"
android:layout_marginStart="0dp"
android:layout_marginLeft="0dp"
android:layout_marginTop="-6dp"
android:layout_marginEnd="9dp"
android:layout_toEndOf="@+id/message_profile_layout"
android:padding="0dp"
android:scaleType="centerCrop" />
</RelativeLayout>
更改为gravity
,将right
更改为layout_gravity
。 right
功能。没有什么能解决我的问题。
请帮我。
谢谢。
答案 0 :(得分:5)
在“活动”或片段中将 RelativeLayout 对象声明为字段
private RelativeLayout mRoot;
按如下所示初始化您的根布局对象变量:
活动中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourLayout);
mRoot= findViewById(R.id.message_single_layout);
}
在片段中:
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mRoot= (RelativeLayout) view;
}
以及您想在哪里将根布局方向设置为rtl(如果您的最低SKD至少为17)。 rtl表示从右到左
mRoot.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
希望这对您有帮助!