我找到了this。所以,没有运气。我使用了他的代码,但我无法克服这个错误。我对inflaters不熟悉。那么有人可以解释这段代码吗?
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT);
WindowManager wm = (WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup mTopView = (ViewGroup) getApplicationContext()
.getLayoutInflater().inflate(R.layout.activity_invisible, null);
getWindow().setAttributes(params);
wm.addView(mTopView, params);
这部分代码:
ViewGroup mTopView = (ViewGroup) getApplicationContext()
.getLayoutInflater().inflate(R.layout.activity_invisible, null);
给我这个错误The method getLayoutInflater() is undefined for the type Context
有人可以解释我做错了吗?
答案 0 :(得分:1)
getLayoutInflater()是Activity中的一种方法,而不是Context。
您必须使用Activity的实例来调用它,否则它将无效。
但是,您可以使用在创建错误的行之前创建的LayoutInflater inflater
。类似的东西:
ViewGroup mTopView = (ViewGroup) inflater.inflate(R.layout.activity_invisible, null);
答案 1 :(得分:0)
如果您尝试在onCreate()
内执行此代码,而不是
ViewGroup mTopView = (ViewGroup) getApplicationContext().getLayoutInflater().inflate(R.layout.activity_invisible, null);
尝试
ViewGroup mTopView = (ViewGroup) getLayoutInflater().inflate(R.layout.activity_invisible, null);
您的活动采用getLayoutInflater()
方法,因此无需明确获取上下文。