尝试在 Android Studio (Java) 中制作弹出窗口/叠加层
Posted
技术标签:
【中文标题】尝试在 Android Studio (Java) 中制作弹出窗口/叠加层【英文标题】:Trying to Make Pop-Up Window/Overlay in Android Studio (Java) 【发布时间】:2021-08-17 00:22:16 【问题描述】:我正在尝试在 android Studio 中创建一个包含 2 个活动的弹出窗口/叠加层。当按下某个按钮(下面第一张图片中的绿色加号按钮)时,它将启动具有不同布局 (.xml) 文件的较小尺寸的第二个活动。在 AndroidManifest.xml 中声明第二个 Activity 时,它使用我创建的自定义主题使第一个 Activity 出现在它下面,但是,它无法正常工作。
这是两个活动的图片:
第一个活动 -
第二个活动-
代码如下:
MainActivity -
public class MainActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
Util.initScreenRes(this); // initializes screen resolution for later pop-up window sizing
public void ibAddOnClick(View view)
startActivity(new Intent(MainActivity.this, AddPopUpActivity.class));
AddPopUpActivity -
public class AddPopUpActivity extends Activity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.add_popup_activity);
getWindow().setLayout((int) (Util.screenRes.x * 0.8), (int) (Util.screenRes.y * 0.5));
实用工具-
public class Util
public static Point screenRes;
public static void initScreenRes(Activity a)
final DisplayMetrics dm = new DisplayMetrics();
a.getWindowManager().getDefaultDisplay().getMetrics(dm);
screenRes = new Point(dm.widthPixels, dm.heightPixels);
最后,这里是 AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="App.ProgressTracker">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.ProgressTracker">
<activity
android:name="App.FrontEnd.MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.ProgressTracker.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="App.FrontEnd.AddPopUpActivity"
android:label="ProgressTracker"
android:theme="@style/Theme.ProgressTracker.PopUp">
</activity>
</application>
</manifest>
作为参考,我在 YouTube 上使用了本教程来了解我的做法: https://www.youtube.com/watch?v=fn5OlqQuOCk&ab_channel=FilipVujovic
如果能提供任何帮助,我将不胜感激。提前谢谢!
【问题讨论】:
【参考方案1】:在 AndroidManifest.xml 中设置弹出活动的主题为
android:theme="@android:style/Theme.Dialog"
【讨论】:
以上是关于尝试在 Android Studio (Java) 中制作弹出窗口/叠加层的主要内容,如果未能解决你的问题,请参考以下文章
如何在 android studio (java) 中清除通知
java.lang.NullPointerException:尝试调用虚拟方法android studio [重复]
Android Studio choreographer.java
尝试在 Android Studio 上实现 RapidApi
尝试接受 Android Studio 许可证时,我不断收到此错误“java.lang.NoClassDefFoundError”