【问题标题】:Android notification custom layout XML imageview not showingAndroid通知自定义布局XML imageview不显示
【发布时间】:2020-12-31 22:32:02
【问题描述】:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="96dp"
    android:gravity="center"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:orientation="vertical"
        android:paddingStart="24dp"
        android:paddingBottom="8dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/pushIcon"
                android:layout_width="16dp"
                android:layout_height="16dp"
                app:srcCompat="@drawable/push_icon" />

            <TextView
                android:id="@+id/textView23"
                style="@style/TextAppearance.Compat.Notification.Info.Media"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="6dp"
                android:text="YOLOL"
                android:textColor="@color/browser_actions_title_color" />
        </LinearLayout>

        <TextView
            android:id="@+id/text_view_collapsed_1"
            style="@style/TextAppearance.Compat.Notification.Title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:text="New Message!"
            android:textColor="@color/colorPrimary" />

        <TextView
            android:id="@+id/text_view_collapsed_2"
            style="@style/TextAppearance.Compat.Notification.Info"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Expand to show!" />
    </LinearLayout>

    <ImageView
        android:id="@+id/notifPreviewImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        app:srcCompat="@drawable/bb" />

</LinearLayout>

pushIcon ImageView 代替了这个位置但不可见,知道为什么吗?

【问题讨论】:

  • @Edward,不要使用 app:srcCompat,而是尝试使用 android:src。从更高层次的观点来看,它也是不可见的吗?你的意思是你看不到它吗?来自视图层次结构的确认会更明确。
  • @JoxTraex 是的,它有效,谢谢!当您将此作为答案发布时,我会检查

标签: android android-layout android-notifications


【解决方案1】:

在调试过程中始终有帮助的快速提示 - 为相关视图添加背景颜色(也有助于设置特定的宽度和高度以进行测试) - 它可以让您查看视图是否正在是否呈现。如果您看到背景颜色,则视图正在正确渲染,但图像未正确加载。在不知道这一点的情况下,它可能是这些问题的任意组合。

除此之外,如果您在运行时动态更改图标,我会在那里查看您的代码。如果这是一个静态图像,那么我会检查您的资源文件是否是可绘制的矢量,因为只有在使用 app:srcCompat="@drawable/push_icon"

时才允许这样做

如果您的文件是非矢量可绘制文件,则使用android:src="@drawable/push_icon"

Here's a discussion that elaborates on this in more detail.

【讨论】:

  • 除了提示之外,您还可以只查看视图层次结构,这样您就不必修改布局:) 但了解两者都非常重要。原因是因为它可能是视图的高度为 0 但可见,因此您需要检查层次结构。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多