gpt4 book ai didi

android - 两个 ImageViews 出现在导航标题中,而我只在 xml 中设置一个

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:02 25 4
gpt4 key购买 nike

所以我遇到了一个非常奇怪的行为。我有一个 NavigationDrawer,里面有我的导航标题,它有一个 facebook ProfilePictureView 和一个 TextView

问题是,当我运行我的应用程序时,导航标题中有两个 ProfileImageViews。即使在 Android Studio 中, header xml 的预览也会正确显示一个 ProfileImageView

我在下面附上了截图:

enter image description here

这是我的 nav_header_home.xml 文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="@dimen/nav_header_height"
android:background="@color/dark_blue"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">

<com.facebook.login.widget.ProfilePictureView
android:id="@+id/profile_image"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_gravity="center"
android:id="@+id/tv_username"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:textColor="@color/white" />

</LinearLayout>

这就是我初始化它的方式:

View headerView = navigationView.inflateHeaderView(R.layout.nav_header_home);
usernameTextView = (TextView)headerView.findViewById(R.id.tv_username);
profileImage = (ProfilePictureView)headerView.findViewById(R.id.profile_image);

这里是另一个奇怪的行为,可能有助于解决问题:

当我像这样初始化 ProfilePictureView 时:

profileImage = (ProfilePictureView)findViewById(R.id.profile_image);

然后给view设置一张图片,view在最上面显示图片。

而如果我这样初始化:

profileImage = (ProfilePictureView)headerView.findViewById(R.id.profile_image);

然后底部的 View 显示图像。

最佳答案

好吧,我想出了问题。 View headerView = navigationView.inflateHeaderView(R.layout.nav_header_home); 行似乎没有获取当前的header,相反它似乎inflate and create一个新的,这很可能是我的ProfilePictureView被添加了两次的原因!

将其替换为 View headerView = navigationView.getHeaderView(0); 有效!它正确地获取当前 header !

关于android - 两个 ImageViews 出现在导航标题中,而我只在 xml 中设置一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34132038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com