相关疑难解决方法(0)

在屏幕android上更改Dialog的位置

AlertDialog在我的活动中做了一个简单的事:

View view = layoutInflater.inflate(R.layout.my_dialog, null);
AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this)
                    .setView(view)  
                    .create();

infoDialog.show();
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,对话框显示在屏幕的中心(大约).

我想知道,如何自定义对话框位置以使其显示在顶部操作栏下?(无论如何改变对话的重力或某些东西?)以及如何根据我的代码做到这一点?

android android-widget android-emulator android-intent android-layout

96
推荐指数
6
解决办法
11万
查看次数

从Dialog中删除边框,填充

我有一个主题为Theme.Transparent的活动,它是:

<style name="Theme.Transparent" parent="android:Theme.Dialog">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">false</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:gravity">top</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我正试图摆脱它周围的边框和填充..我想填补屏幕的水平.没有灰色边框.请帮忙 :) 在此输入图像描述

user-interface android android-ui android-activity

24
推荐指数
3
解决办法
3万
查看次数

如何向Android窗口管理器添加浮动视图并侦听系统/硬件后退按钮事件

我有一个服务,在窗口管理器上显示浮动视图(使用WINDOW_TYPE_ALERT权限).我能够显示它并执行操作.但是,我有两个具体问题:

  1. 关于浮动视图的实现
  2. 如何监听系统后退按钮事件,以便我可以关闭视图.

执行:

在清单中,我添加了以下权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
Run Code Online (Sandbox Code Playgroud)

我有一个广播接收器,它将监听报警事件.收到活动后,我正在启动服务以显示浮动视图.以下是我用来创建视图的代码.

LayoutParams layOutParams = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
                WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
                PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)

每当用户对视图执行任何操作时,我都会从窗口管理器中删除该视图并终止该服务.

我想知道的是 - 如果这是解决问题的正确方法,或者有更好的方法吗?而且,我应该对LayoutParams进行更改还是保持原样?

其次,当有SYSTEM BACK/HARDWARE BACK按钮按下事件时,我还想忽略这个浮动视图.有关如何执行此操作的任何指示都会有所帮助.

附上浮动视图的屏幕截图以便更好地理解:

浮动视图

android android-service android-windowmanager

12
推荐指数
2
解决办法
2万
查看次数

PopupWindow里面的WebView中的上下文菜单/窗口崩溃了应用程序?

我有一个包含WebView的PopupWindow打开Facebook页面的应用程序,任何上下文菜单如:WebView中的文本字段上的自动完成,甚至是长按,应该显示用户复制/粘贴/剪切的选项立即崩溃应用程序跟随错误:

FATAL EXCEPTION: main
android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@418cdab0 is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:700)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:345)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
at android.view.Window$LocalWindowManager.addView(Window.java:554)
at android.widget.PopupWindow.invokePopup(PopupWindow.java:1013)
at android.widget.PopupWindow.showAtLocation(PopupWindow.java:856)
at android.widget.PopupWindow.showAtLocation(PopupWindow.java:820)
at android.webkit.WebViewClassic$PastePopupWindow.show(WebViewClassic.java:971)
at android.webkit.WebViewClassic.showPasteWindow(WebViewClassic.java:7037)
at android.webkit.WebViewClassic.access$10300(WebViewClassic.java:235)
at android.webkit.WebViewClassic$PrivateHandler.handleMessage(WebViewClassic.java:11376)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

注意:我对该问题的理解是,上下文菜单/窗口实际上显示在应用程序本身的范围内,而不是使用另一个PopWindow(由Core WebView类生成的自动)在WebView内部,此类错误地引用了上下文.

我的守则如下:

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/openpopup"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Open …
Run Code Online (Sandbox Code Playgroud)

android android-webview android-contextmenu

4
推荐指数
1
解决办法
2861
查看次数

在android活动的右上角显示对话框

如何在android活动的右上角显示对话框。

下面是我的对话框代码

项目.xml

 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="150dp"
    android:layout_height="wrap_content" >

    <com.CustomToggleButton
        android:id="@+id/toggleButton2"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:textOff="@string/off_txt"
        android:textOn="@string/on_txt" />

</TableLayout>
Run Code Online (Sandbox Code Playgroud)

ActivityMy.java

 dialog_box = new Dialog(ActivityMy.this);
                        dialog_box.setContentView(R.layout.item);
                        dialog_box.show();
Run Code Online (Sandbox Code Playgroud)

android android-layout

2
推荐指数
1
解决办法
5378
查看次数