在窗口管理器中膨胀类时出错

Posted

技术标签:

【中文标题】在窗口管理器中膨胀类时出错【英文标题】:Error while inflating class in window manager 【发布时间】:2019-02-08 05:52:53 【问题描述】:

代码

public class FloatingWindow extends Service
WindowManager wm;
LinearLayout ll;
LayoutInflater li;

@Override
public IBinder onBind(Intent intent) 
    // TODO Auto-generated method stub
    return null;


@Override
public void onCreate() 
    // TODO Auto-generated method stub
    super.onCreate();
    View myview;
    li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.TYPE_INPUT_METHOD |
            WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY | WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
            WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
            PixelFormat.TRANSLUCENT);
    params = new WindowManager.LayoutParams(
            500, 1000, WindowManager.LayoutParams.TYPE_PHONE,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    params.gravity = Gravity.CENTER | Gravity.CENTER;
    myview = li.inflate(R.layout.service_floating_window, null); // your layout here
    wm.addView(myview, params);

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:background="@color/black"
android:layout_
xmlns:app="http://schemas.android.com/apk/res-auto">


<RelativeLayout
    android:background="@drawable/allusers"
    android:layout_below="@id/actionBar"
    android:layout_
    android:layout_>

<RelativeLayout
    android:id="@+id/top"
    android:padding="2dp"
    android:paddingStart="20dp"
    android:paddingEnd="10dp"
    android:background="@color/black"
    android:layout_
    android:layout_>

    <ImageButton
        android:background="@null"
        android:src="@drawable/close"
        android:layout_alignParentRight="true"
        android:layout_
        android:layout_ />



    <LinearLayout
        android:paddingVertical="5dp"
        android:layout_
        android:layout_
        android:orientation="vertical">


        <TextView
            android:text="Name"
            android:layout_centerVertical="true"
            android:id="@+id/name"
            android:textColor="@color/white"
            android:layout_
            android:layout_
            android:textSize="18dp"/>

        <TextView
            android:text="Online"
            android:layout_centerVertical="true"
            android:id="@+id/online"
            android:textColor="@color/white"
            android:layout_
            android:layout_
            android:textSize="12dp"/>

    </LinearLayout>

</RelativeLayout>





    <android.support.v7.widget.RecyclerView
        android:layout_above="@+id/linearlayout"
        android:scrollbars="vertical"
        android:id="@+id/message_list"
        android:padding="2dp"
        android:background="@drawable/allusers"
        android:layout_below="@+id/top"
        android:layout_
        android:layout_></android.support.v7.widget.RecyclerView>

<RelativeLayout
    android:background="@null"
    android:padding="1dp"
    android:layout_alignParentBottom="true"
    android:id="@+id/linearlayout"
    android:layout_
    android:layout_>

    <ImageButton
        android:scaleType="center"
        android:src="@drawable/add_image"
        android:id="@+id/add_image"
        android:layout_
        android:background="@null"
        android:layout_
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />

    <View

        android:layout_marginVertical="5dp"
        android:layout_toRightOf="@id/add_image"
        android:id="@+id/midleft"
        android:layout_
        android:layout_
        android:background="@color/white"/>

    <EditText
        android:paddingVertical="5dp"
        android:paddingHorizontal="10dp"
        android:textColorHint="@color/white"
        android:hint="Write a message..."
        android:id="@+id/input_message"
        android:textColor="@color/white"
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:layout_toEndOf="@+id/add_image"
        android:layout_toStartOf="@+id/send_message" />

    <View
        android:layout_marginVertical="5dp"
        android:layout_toLeftOf="@id/send_message"
        android:id="@+id/midright"
        android:layout_
        android:layout_
        android:background="@color/white"/>


    <ImageButton
        android:scaleType="center"
        android:background="@null"
        android:src="@drawable/send_button"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:id="@+id/send_message"
        android:layout_
        android:layout_
        android:text="Send" />

    <View
        android:layout_marginHorizontal="10dp"
        android:layout_alignParentBottom="true"
        android:id="@+id/bottomline"
        android:layout_
        android:layout_
        android:background="@color/white"/>

</RelativeLayout>
</RelativeLayout>
 </RelativeLayout>

每当我尝试调出浮动窗口时,我都会遇到此异常......我也是窗口管理器的新手,所以不确定是什么导致了问题......我学到的一件事是 xml 文件不能有一个 appbar.. .但是我的没有但仍然显示错误...有人可以帮帮我吗...

【问题讨论】:

如果您查看错误,这不是您的 Windows 管理器的问题,而是您尝试运行的服务的问题。在第一行中写到无法创建服务:)。首先确保您的服务已成功创建,然后继续。 如果我尝试膨胀另一个不包含应用栏的活动,它工作正常@Umair 所以问题不在于创建它 你测试的是什么安卓系统? 【参考方案1】:

好吧,问题就在这里

android:layout_

我不得不“评论”每一行以查看问题出在哪里,因为其他任何地方都没有问题

我将高度设置为 50dp,现在可以正常工作了

【讨论】:

以上是关于在窗口管理器中膨胀类时出错的主要内容,如果未能解决你的问题,请参考以下文章

资源管理器中的地址栏只能在浏览器中打开

如何获取任务管理器中显示的活动窗口应用程序名称

在 Cardview 中膨胀二进制 xml 文件的类时出错

二进制 XML 文件第 13 行:在扩展 VideoView 的类上膨胀类时出错

如何在任务管理器中添加名称到程序

二进制 XML 文件第 7 行:膨胀类时出错