TextView中间的右对齐按钮

时间:2019-12-10 07:05:37

标签: android android-layout textview android-xml android-button

我想像WhatsApp一样在TextView的中间对齐按钮。 Android studio的布局预览屏幕显示正确,但在电话上它未对齐TextView的中部,也未对齐屏幕的底部。

单独使用片段没有问题,但是当片段在活动中时,就会发生问题。我了解自己的活动布局有误。

如何对齐发送按钮?

Whatsapp按钮: enter image description here

我在Android Studio预览中的按钮: enter image description here

我在电话上的按钮 enter image description here

我的片段布局:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorBlue"
    android:orientation="vertical">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <TextView
        android:id="@+id/userNames"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        android:ellipsize="end"
        android:gravity="start|center_vertical"
        android:maxLines="1"
        android:padding="10dp"
        android:scrollbars="horizontal"
        android:scrollHorizontally="true"
        android:text="Hello Nilu Pilu"
        android:textColor="@color/colorGreen" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_gravity="center"
        android:layout_marginBottom="10dp"
        android:contentDescription="@null"
        android:src="@drawable/ic_log_out" />

</RelativeLayout>

我的活动布局:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 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:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@color/colorPrimary"
            android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            android:theme="@style/ThemeOverlay.AppCompat.Dark"
            app:tabMode="scrollable">

            <androidx.appcompat.widget.SearchView
                android:id="@+id/search_action"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:contentDescription="@null"
                android:iconifiedByDefault="false"
                android:tint="@color/white"
                app:defaultQueryHint="@string/searchForName"
                app:iconifiedByDefault="false"
                app:queryHint="@string/searchForName"
                app:srcCompat="@drawable/ic_search_24" />

        </androidx.appcompat.widget.Toolbar>

        <LinearLayout
            android:id="@+id/share_list_fragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            tools:ignore="MergeRootFrame" />
    </LinearLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

2 个答案:

答案 0 :(得分:1)

无需使用嵌套的-> mysql -h host -u user -p database_name table_name < test_table.sql ,只需使用单个RelativeLayout

  

使用RelativeLayout

尝试一下
RelativeLayout
  

使用<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorBlue" android:orientation="vertical"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/userNames" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:background="@color/colorPrimary" android:ellipsize="end" android:gravity="start|center_vertical" android:maxLines="1" android:padding="10dp" android:scrollbars="horizontal" android:scrollHorizontally="true" android:text="Hello Nilu Pilu" android:textColor="@color/colorGreen" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:layout_gravity="center" android:layout_marginBottom="10dp" android:contentDescription="@null" android:src="@drawable/ic_log_out" /> </RelativeLayout>

尝试一下
ConstraintLayout

输出

enter image description here

答案 1 :(得分:1)

我建议使用ConstraintLayout布局,而不要使用RelativeLayout,这是您使用ConstraintLayout编写的代码,可以很好地工作。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/emptyListColor"
    android:orientation="vertical">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/bottomView"
        android:layout_height="0dp" />

    <RelativeLayout
        android:id="@+id/bottomView"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        android:padding="5dp">

        <TextView
            android:id="@+id/userNames"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start|center_vertical"
            android:ellipsize="end"
            android:gravity="start|center_vertical"
            android:maxLines="1"
            android:padding="5dp"
            android:scrollbars="horizontal"
            android:scrollHorizontally="true"
            android:textColor="@color/white" />

    </RelativeLayout>

    <ImageView
        android:id="@+id/button"
        android:layout_width="50dp"
        android:layout_height="50dp"
        app:layout_constraintTop_toTopOf="@+id/bottomView"
        app:layout_constraintBottom_toTopOf="@+id/bottomView"
        app:layout_constraintEnd_toEndOf="@+id/bottomView"
        android:layout_gravity="center"
        android:layout_margin="10dp"
        android:background="@drawable/send_circle"
        android:contentDescription="@null"
        android:src="@drawable/attach_send2" />

</androidx.constraintlayout.widget.ConstraintLayout>