【问题标题】:How to centralize image in header of Navigation View?如何在导航视图的标题中集中图像?
【发布时间】:2017-12-14 15:41:16
【问题描述】:

我需要将图像集中在 Navigaion 视图的标题中。首先,我尝试将layout_gravitygravity 设置为center_verticallayout_centerVertical="true"。这没有帮助。下一步设置为marginspadding。这也没有帮助。现在我不知道如何集中它。这是我的代码

nav_header

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="@dimen/nav_header_height"
        android:orientation="vertical"
        >

        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/ivAvatar"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/user"
            android:background="@drawable/user"
            android:layout_marginLeft="24dp"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginStart="24dp"
            />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginLeft="@dimen/medium_margin"
        android:layout_marginTop="@dimen/medium_margin"
        android:layout_marginBottom="@dimen/medium_margin"
        android:layout_toRightOf="@+id/ivAvatar"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true">
        <me.grantland.widget.AutofitTextView
            android:id="@+id/tvName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Charla"
            android:singleLine="true"
            android:textColor="@color/transparent_white"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"
            android:textSize="22sp" />
        <me.grantland.widget.AutofitTextView
            android:id="@+id/tvLastName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Reeves"
            android:singleLine="true"
            android:textColor="@color/transparent_white"
            android:textSize="22sp" />
    </LinearLayout>
</RelativeLayout>

导航视图

  <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:background="@drawable/background"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/menu_list"
        app:itemIconTint="@color/menu_text_color"
        app:itemTextColor="@color/menu_text_color"
        app:itemBackground="@drawable/nav_view_background"

        >

    </android.support.design.widget.NavigationView>

这是它在预览中的样子(我需要它如何显示):

这是我运行应用程序时的实际外观:

【问题讨论】:

  • 您能否澄清问题所在,将屏幕截图放大一点以包含状态栏。
  • @Mihai 我编辑我的问题。我的图片和文字必须在vertical_center,而不是像我得到的那样

标签: android navigation navigation-drawer


【解决方案1】:

您遇到的问题是导航抽屉在状态栏下方绘制(高度为 24)。阅读更多关于它的信息here

【讨论】:

  • 那我该怎么办?
  • 您可以在布局中添加上边距(这是一种黑客行为)。或者让您的应用不使用状态栏下的空间(将 android:fitsSystemWindows="true" 添加到导航布局)。
  • 添加边距无济于事:(
  • 和另一个提示,你应该使用约束布局比相对布局内的线性布局更有效
  • 你必须为图像和线性布局添加边距而不是父级
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多