【问题标题】:Android Toolbar icons alignment issueAndroid 工具栏图标对齐问题
【发布时间】:2019-12-22 12:45:13
【问题描述】:

我在 Android 的工具栏上使用自定义图标。

虽然我的问题是我无法对齐工具栏右侧的 2 个图标,但这意味着在最后对齐它们。

这是我的实际工具栏图像,这两个图标位于工具栏的中心。

附上我的 xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">


  <RelativeLayout
     android:id="@+id/innerToolbarLayout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="center"
     android:orientation="horizontal">

     <TextView
        android:layout_alignParentStart="true"
        android:id="@+id/tvToolbarHeading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="10dp"
        android:text="Complaint Details"
        android:layout_centerVertical="true"
        android:textColor="@color/link_text_color"
        android:textSize="20sp"
        android:fontFamily="@font/lato_bold" />

     <ImageView

        android:tint="@color/link_text_color"
        android:layout_toStartOf="@+id/iviconSend"
        android:id="@+id/ivIconRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginEnd="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_attachment_toolbar" />

     <ImageView
        android:layout_gravity="end"
        android:layout_centerVertical="true"
        android:tint="@color/link_text_color"
        android:id="@+id/iviconSend"
        android:layout_width="wrap_content"
        android:layout_height="25dp"
        android:layout_alignParentEnd="true"
        android:layout_marginEnd="10dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_send_email" />


      </RelativeLayout>


 </android.support.v7.widget.Toolbar>

ma​​in_activity.xml

 <RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/parentLayout1">

   <include
    android:id="@+id/composeMailtoolbar"
    layout="@layout/toolbar_send_mail"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:elevation="6dp" />

  </RelativeLayout>

注意:我将此布局包含在工具栏的不同主布局中。

请指导我解决此问题。

【问题讨论】:

    标签: android alignment toolbar gravity


    【解决方案1】:

    试试这个。我已经在发送的开头对齐了附件图标:

    <TextView
                android:id="@+id/tvToolbarHeading"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="10dp"
                android:text="Complaint Details"
                android:textSize="20sp"/>
    
        <ImageView
                android:id="@+id/ivIconRight"
                android:tint="@color/link_text_color"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_attachment_toolbar"
                android:layout_marginEnd="5dp"
                android:layout_toStartOf="@id/iviconSend"/>
    
        <ImageView
                android:id="@+id/iviconSend"
                android:tint="@color/link_text_color"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="10dp"
                android:src="@drawable/ic_send_email"
                android:layout_alignParentEnd="true"/>
    

    【讨论】:

    • 我也在我的代码中附加了相同的内容。请做交叉检查。
    • 不一样,我在第一个ImageView中使用了“alignStartOf”,而“center_verticals”不见了。
    【解决方案2】:

    只需删除

    android:gravity="center"
    

    并确保 android:layout_width="match_parent" 包含此工具栏

    下面是我的工作代码

    layout_toolbar.xml

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mainToolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white">
    
    
        <RelativeLayout
            android:id="@+id/innerToolbarLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
    
            <TextView
                android:id="@+id/tvToolbarHeading"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:layout_marginEnd="10dp"
                android:text="Complaint Details"
                android:textColor="@color/colorAccent"
                android:textSize="20sp" />
    
            <ImageView
    
                android:id="@+id/ivIconRight"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginEnd="12dp"
                android:layout_toStartOf="@+id/iviconSend"
                android:scaleType="fitCenter"
                android:src="@android:drawable/ic_delete"
                android:tint="@color/colorAccent" />
    
            <ImageView
                android:id="@+id/iviconSend"
                android:layout_width="wrap_content"
                android:layout_height="25dp"
                android:layout_alignParentEnd="true"
                android:layout_centerVertical="true"
                android:layout_gravity="end"
                android:layout_marginEnd="10dp"
                android:scaleType="fitCenter"
                android:src="@android:drawable/ic_dialog_email"
                android:tint="@color/colorAccent" />
    
    
        </RelativeLayout>
    
    
    </android.support.v7.widget.Toolbar>
    

    activity_main.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"
        android:background="@color/colorAccent"
        android:theme="@style/AppTheme">
    
        <include
            android:id="@+id/toolbar"
            layout="@layout/layout_toolbar" />
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/toolbar"
            android:layout_centerHorizontal="true"
            android:background="#ffffff">
    
            <CalendarView
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
    
        </LinearLayout>
    
    </RelativeLayout>
    

    style.xml

    <resources>
    
        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
    
    </resources>
    

    【讨论】:

    • 我应用了你的修改,但仍然出现同样的问题,我也根据上面的描述更新了我的 main_activity.xml。请检查。
    • @javabee : 如果你的代码在 git 上,那么我可以试试你的代码并修复它。因为我没有发现上述代码有任何问题。
    • 项目太大,无法在 git 上分享,如果你愿意,我可以完全分享相关的 xml。
    • @javabee : 你可以创建演示应用程序(单活动应用程序)并将其上传到 git 并将你的问题添加到演示应用程序中。我会检查并修复它。
    • 需要时间。让我试试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多