服务中的膨胀视图显示的是视图,而不是布局内的 ImageView

问题描述

我已经成功地在服务中扩展了我的布局,但是它没有在 ImageView显示 Inflated Layout,我不知道为什么。我在 imageview 上设置了一个 onClickListener 并且它工作得很好(当我点击绿色方块时记录并停止服务)。唯一的问题是它没有显示 X mark,我不知道为什么。

enter image description here

enter image description here

public class OverlayService extends Service {

    private ViewGroup view;

    @Override
    public IBinder onBind(Intent i) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);

        WindowManager.LayoutParams params = null;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            params = new WindowManager.LayoutParams(
                    WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,PixelFormat.TRANSLUCENT);
            params.gravity = Gravity.TOP | Gravity.END;
        }

        view = (ViewGroup) layoutInflater.inflate(R.layout.test_view,null);

        ImageView btnClear = view.findViewById(R.id.btn_clear);
        btnClear.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                
                // THIS IS SUCCESSFULLY CALLED WHEN CLICKING ON THE GREEN BUTTON.
                Log.d(TAG,"onClick: Clicked");
                stopSelf();
            }
        });

        wm.addView(view,params);


    }

解决方法

我很幸运遇到这个答案:

https://stackoverflow.com/a/56045405/11110509

我正要放弃,直到它告诉我尝试

<androidx.appcompat.widget.AppCompatImageView 在 XML 中而不是 ImageView。我不知道为什么会这样,但我现在可以在 Inflated Layout 中看到 drawable。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...