android - 在 Activity 中正常膨胀时在服务中膨胀 View 时膨胀异常

标签 android xml android-activity service android-inflate

当尝试像这样膨胀 View 时:

val lay: LayoutInflater = getSystemService(LAYOUT_INFLATER_SERVICE) as (LayoutInflater)
mView = lay.inflate(R.layout.dialog_new_order, null)

我看到一个膨胀的异常:

Binary XML file line #0: Failed to resolve attribute at index 1: TypedValue{t=0x2/d=0x7f030006 a=-1}

但是当在 Activity 中写入相同的行时它工作正常!

查看 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="wrap_content"
    android:layout_centerInParent="true"
    android:background="@color/white"
    android:layout_margin="10dp"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorPrimary"
        android:drawableStart="@mipmap/ic_launcher"
        android:gravity="center_vertical"
        android:drawablePadding="20dp"
        android:text="@string/new_order"
        android:textColor="@color/white"
        android:textSize="@dimen/text_size_large" />

    <ImageView
        android:id="@+id/order_image"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp" />

    <TextView
        android:id="@+id/order_rest_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:textColor="@color/black"
        android:textSize="@dimen/text_size_xlarge" />

    <TextView
        android:id="@+id/order_customer_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:textColor="@color/black"
        android:textSize="@dimen/text_size_normal" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/bg_btns_border"
        android:orientation="horizontal"
        android:weightSum="1">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:padding="10dp"
            android:orientation="vertical">

            <TextView
                android:id="@+id/order_price"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/black"
                android:gravity="center"
                android:textSize="@dimen/text_size_large" />

            <TextView
                android:id="@+id/order_pay_method"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/black"
                android:gravity="center" />


        </LinearLayout>

        <View
            android:layout_width="0.5dp"
            android:layout_height="match_parent"
            android:background="@color/gray_lite" />

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:padding="10dp"

            android:orientation="vertical">

            <TextView
                android:id="@+id/order_delivery_time"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="0 Min"
                android:singleLine="true"
                android:ellipsize="end"
                android:textColor="@color/black"
                android:textSize="@dimen/text_size_large" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textColor="@color/black"
                android:text="@string/to_restaurant" />
        </LinearLayout>
    </LinearLayout>

    <Button
        android:id="@+id/order_accept_btn"
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:layout_margin="10dp"
        android:background="@drawable/bg_btns_rounded_green"
        android:text="@string/order_status_start_pickup"
        android:textAllCaps="true"
        android:textSize="@dimen/text_size_large"
        android:textColor="@color/white" />

</LinearLayout>

最佳答案

按照 Alessio 的说法是正确的服务没有 UI 所以如果你想从你的服务中显示 Activity 的 View 然后通过你的 Activity Context 和 Show View

LayoutInflater lay=(LayoutInflater)Context.getSystemService(LAYOUT_INFLATER_SERVICE)

mView = lay.inflate(R.layout.dialog_new_order, null)

关于android - 在 Activity 中正常膨胀时在服务中膨胀 View 时膨胀异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47545066/

相关文章:

Java 计时器 - 调用的函数未完成!

android - 在Android中实现websocket客户端的简单方法是什么?下面的例子正确吗?

android - 如何使用 shareduserID android 共享 xml 文件

Android Activity 生命周期和锁定/解锁设备

android - 如何在 android 应用程序中的 Activity 上添加声音按钮(打开关闭)?

android - 如何提升AsyncTask的优先级?

android - Firebase 消息 : Infinite onLaunch Loop

c# - 如何使用 LINQ 从 xml 数据库中选择唯一名称?

xml - 多个 xsl :choose within a single xsl:when

java - 在 EditText 的日期中添加斜线