我想要一个完全自定义的Dialog或PopupWindow,没有任何默认的Android UI控件(标题,背景,按钮等等).
这有可能吗?我花了几个小时寻找这个,但没有运气......看起来这应该很容易,但我找不到它.
最好是通过从XML中扩展View,但此时任何可行的东西都会很好.
谢谢.
我正在制作一个显示popupWindow语言的键盘。在所有设备上,我都可以popupWindow在键盘外完美显示,但在仅Android Pie中,不能popupWindow在键盘外显示。
candidateView连接蓝牙键盘时,我想在键盘之外显示弹出窗口。
我正在使用此代码
setClippingEnabled(false);
showAtLocation(anchor, Gravity.NO_GRAVITY, x, y);
Run Code Online (Sandbox Code Playgroud)
有人有什么想法吗,这是什么问题?
这是演示应用程序-https: //github.com/priyankagb/andoidpiepopupwindowdemo
看截图
在Android Pie中,您可以在底部看到一小行popupWindow用于语言
左边是馅饼下方,右边是馅饼

我使用PopupWindow播放菜单,它与EditText重叠.
它工作正常,只是我的PopupWindow与EditText IME系统中的一些项目重叠(选择标记,粘贴按钮).
我的问题是:如何强制我的PopupWindow的z排序,使它出现在那些装饰上面?
这是正在发生的事情的形象.我需要在所有内容之上绘制我的PopupWindow(菜单),从而以某种方式告诉WindowManager如何订购窗口.谢谢.

我正在尝试从PopupWindow中显示ListView.但是当我尝试调用ListView的setOnItemClickListener时,没有任何问题可以解决.这是Java文件
PopupWindowActivity.java
public class PopupWindowActivity extends Activity {
String[] data = { "DATA 1", "DATA 2", "DATA 3", "DATA 4", "DATA 5", "DATA 6" };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a);
final Button btnOpenPopup = (Button) findViewById(R.id.openpopup);
btnOpenPopup.setOnClickListener(new Button.OnClickListener() {
public void onClick(View arg0) {
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.main, null);
final PopupWindow popupWindow = new PopupWindow(popupView,
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ListView listView = (ListView) popupView.findViewById(R.id.listView1); …Run Code Online (Sandbox Code Playgroud) 我有这个代码.
PopupWindow popUp = new PopupWindow();
popUp.setFocusable(true);
popUp.setOutsideTouchable(true);
popUp.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
popUp.setHeight(600);
popUp.setContentView(anchorView);
popUp.showAsDropDown(anchorView);
popUp.update();
Run Code Online (Sandbox Code Playgroud)
它完美适用于Android版<Android Nougat.但是在Android Nougat中,弹出窗口显示在屏幕顶部而不是相对于锚点视图.
http://developer.android.com/design/building-blocks/dialogs.html中的Android设计文档明确区分了对话框,警报,弹出窗口和Toast.它还建议通过类和Toasts通过类来实现Dialogs.但是,我不清楚是否应该使用或使用弹出窗口.DialogFragmentToastPopupWindowDialogFragment
我知道DialogFragments通常带有Ok/Cancel按钮,并且PopupWindows可以定义位置,但是:
DialogFragment的继任者PopupWindow会在某个时候被弃用吗?尝试在c#中使用selenium webdriver编写一些测试用例,并且有一个我不确定如何解决的场景
用户场景正在搜索患者的表格,选择患者然后打开一个新窗口,然后在窗口上断言各种项目
我的问题是我无法选择新窗口来断言任何东西,它不是一个弹出窗口,它是一个全新的浏览器窗口,但它没有窗口标题/名称来识别它,我怎么能够将驱动程序焦点切换到此窗口?
提前致谢
基本上,我在布局中有一个TextView,用于PopupWindow.当用户点击按钮时,我会显示这个PopupWindow; 我希望能够在按钮单击时动态更改PopupWindow中的文本.但是,findViewById(my_textview).setText()似乎没有做任何事情,确实导致单击按钮时PopupWindow不再显示.
我可以从布局xml中设置文本.
任何人都知道这是怎么回事?谢谢-
Android PopupWindow可以显示另一个PopupWindow吗?可以在同一时间打开多少PopupWindow?只有一个?
第一个PopupWindow正常显示.但是按下按钮(在第一个PopupWindow内容视图中)我有一个例外:
08-13 16:28:38.682: ERROR/AndroidRuntime(11760): FATAL EXCEPTION: main
android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@41286250 is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:600)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:313)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
at android.view.Window$LocalWindowManager.addView(Window.java:537)
at android.widget.PopupWindow.invokePopup(PopupWindow.java:992)
at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:901)
at org.example.qberticus.quickactions.BetterPopupWindow.showLikePopDownMenu(BetterPopupWindow.java:159)
at org.example.qberticus.quickactions.BetterPopupWindow.showLikePopDownMenu(BetterPopupWindow.java:129)
at name.antonsmirnov.android.popup.ui.MainActivity$1$1.run(MainActivity.java:44)
at android.app.Activity.runOnUiThread(Activity.java:4170)
at name.antonsmirnov.android.popup.ui.MainActivity$1.onClick(MainActivity.java:42)
at android.view.View.performClick(View.java:3558)
at android.view.View$PerformClick.run(View.java:14157)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
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:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
代码是:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); …Run Code Online (Sandbox Code Playgroud) 我有两个模块,考虑A和B.在它们之间,存在多对多的关系.现在,还有另一个模块,考虑C.A&C和B&C之间存在一对多.现在,在C模块的editview上,存在模块A和模块B的关联字段.
现在,在从模块A中选择任何记录之后,在从模块B中选择记录时,我想只显示那些与模块A的所选记录相关的记录.
现在,我遇到了这些链接,他们在这些模块之间具有一对多关系的场景中提供了解决方案.
在"一对多"场景中,我们可以通过将以下代码添加到目标模块的editviewdefs.php文件来实现相同的目的,如下所示:
'displayParams' => array(
'initial_filter' => '&contact_name_advanced="+encodeURIComponent(document.getElementById("contact_name").value)+"',
),
Run Code Online (Sandbox Code Playgroud)
或者像这样:
'displayParams' => array (
'initial_filter' => '&account_name={$fields.account_name.value}',
),
Run Code Online (Sandbox Code Playgroud)
但是这些帖子都没有提到"多对多"情景的任何解决方案,也没有找到任何这样的帖子.
我发现了另一篇文章:
它与上述解决方案一起建议在popdefs.php文件中添加几行代码.但这不是明智的选择,因为这个popdefs.php文件由SugarCRM自动生成.
我发现了几个帖子:
如何在Sugar CE 6.5.18中覆盖view.popup
我如何在SugarCRM中的view.popup中自定义查询
它建议在SugarCRM中的popupview(view.popup.php)中自定义sql查询.我试过了,但我仍然没有成功.请帮助.谢谢.