问题标签 [android-layoutparams]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1592 浏览

android - 如何更改通过 WindowManager 添加的窗口的 z 顺序?

是否可以指定每个窗口的 z 顺序?在下图中,每个editText 都在它们自己的窗口中,通过WindowManager 添加。如您所见,我有一个 z 顺序问题

在此处输入图像描述

就像你在图片上看到的那样,最后一个窗口添加了接缝以获取更高的 z 顺序。因此,我发现将窗口置于更高 z 顺序的唯一方法是从 windowManager 中删除视图,然后立即再次添加它。这不是非常理想的解决方案,因为在视觉上视图消失并重新出现在屏幕上

0 投票
2 回答
1492 浏览

android - 水平 android:animateLayoutChanges="true" 动画不流畅

我有一个动画如下的布局

在此处输入图像描述

txt_billion动态显示,带有(下面的android:animateLayoutChanges="true"布局代码)。

注意Hundred正在跳跃(实际上所有都在跳跃,但Hundred更明显)。如何防止文字跳动?

您可以从https://github.com/elye/issue_horizo​​ntal_layout_animate获取代码进行测试

0 投票
4 回答
42812 浏览

android - 在 ConstraintLayout 中以编程方式删除/添加约束

我想根据某些条件以编程方式删除和添加约束。以下是截图:

按钮

我想像这样删除它,但在代码中:

这是顶部删除约束的按钮

所以想要以编程方式实现相同的效果

这是我尝试过的代码:

编辑

我也尝试过使用 ConstraintSet,但结果甚至有所不同,我的 RecyclerView(设置为父视图的边界)正在消失

0 投票
1 回答
3033 浏览

android - 尝试在 DialogFragment 中获取 CardView 的布局参数时,“尝试在空对象引用上调用虚拟方法”?

我正在尝试设置 aCardView内部的大小 a DialogFragment,但出现此错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.view.ViewGroup$LayoutParams android.support.v7.widget.CardView.getLayoutParams()'

这是我的代码:

这是不可能的还是我做错了什么?

更新: cardView 在片段内。

更新 2:

将代码更改为波纹管时:

空白片段:

主要活动:

,我得到这个错误:

致命异常:主进程:com.sim.buttombarnavigationandfragment,PID:10685 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.sim.buttombarnavigationandfragment/com.sim.buttombarnavigationandfragment.MainActivity}:java.lang.NullPointerException:尝试在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2680) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2741) 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 在 android .os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6176) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 888)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778) 引起:java.lang.NullPointerException:尝试调用虚拟方法 'android.view.View android.view.View.findViewById(int)' 在 com.sim.buttombarnavigationandfragment.MainActivity.onCreate(MainActivity.java:56) 在 android.app.Activity.performCreate(Activity.java:6679) 在 android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1119) 在 android.app 的 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2633)。ActivityThread.handleLaunchActivity(ActivityThread.java:2741) 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 在 android.os.Handler.dispatchMessage( Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6176) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:778)第888章)第888章)

0 投票
2 回答
235 浏览

android - 如何使用布局参数增加特定视图位置的高度

使用此代码,我可以显示如下视图:

我想增加位置 4 和 8 的视图高度。我正在尝试使用:

lnLinearlayout.getChildAt(4).setMinimumHeight(20) lnLinearlayout.getChildAt(8).setMinimumHeight(20)

但观点没有变化。谁能建议如何增加特定视图的高度?

0 投票
2 回答
373 浏览

android - 如何设置 android:layout_marginBottom 程序?

要在屏幕上拖动图像,我创建了自己的类:

在构造函数中,我想设置参数:

我的activity_main.xml:

我想实际上是这样:

为什么字符串"params.bottomMargin = 50"不起作用?我试图设置params = new RelativeLayout.LayoutParams(val1,val2),但没关系。如何android:layout_marginBottom通过代码在 RelativeLayout 中设置?

0 投票
1 回答
7309 浏览

android - 如何以编程方式访问 ConstraintLayout 中视图的当前约束?

我可以使用 ConstraintSet 以编程方式修改 ConstraintLayout 中视图的约束,但在应用修改之前,我想测试它是否已经完成。为此,我需要以编程方式访问 ConstraintLayout 中视图的当前约束。

例如,这里我想删除 TextView 'title' 顶部和 TextView 视图 'subtitle' 底部之间的约束。然后将 TextView 'title' 的顶部约束到 'videoView' 的底部。但首先我需要检查 TextView 'title' 是否已经被限制在 'videoView' 的底部(代码从android 的官方网站修改)。注意,我不能在这个网站上插入 HTML 的最后一行,它是尖括号中的 /android.support.constraint.ConstraintLayout。

}

0 投票
6 回答
33928 浏览

android - Android:使用 TYPE_APPLICATION_OVERLAY 的窗口类型 2038 的权限被拒绝

我试图创建一个高于其他应用程序的视图:

我查看了其他回复,发现以下“绘制应用程序”的内容:

  • 我在清单中有 android.permission.SYSTEM_ALERT_WINDOW
  • 我正在做 Settings.canDrawOverlays(this) 检查哪个返回为真。
  • 我已经完成了所有位于此处的窗口类型权限被拒绝

我仍然收到“-- 窗口类型 2038 的权限被拒绝”错误。到目前为止,我正在使用 TYPE_PHONE 并且它可以工作,但它已被弃用并说要使用 TYPE_APPLICATION_OVERLAY。有人可以跟进这一点,因为 TYPE_PHONE 答案并不是真正的解决方案,而是 Android O 中已弃用的“补丁工作”解决方案。

我在 Android 7.1.2 上运行

android.view.WindowManager$BadTokenException: 无法添加窗口 android.view.ViewRootImpl$W@1f47e89 -- android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3344) 上 android.app.ActivityThread 的窗口类型 2038 的权限被拒绝.-wrap21(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper .java:154) at android.app.ActivityThread.main(ActivityThread.java:6121) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit .java:889) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 原因:android.view.WindowManager$BadTokenException:无法添加窗口 android.view。ViewRootImpl$W@1f47e89 -- 在 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342) 在 android.view.ViewRootImpl.setView(ViewRootImpl.java:703) 在 android.view.WindowManagerImpl 的窗口类型 2038 的权限被拒绝。 addView(WindowManagerImpl.java:93) 在 HeadService.TwoViewManager.(TwoViewManager.java:99) 在 HeadService.UIHeadService.onStartCommand(UIHeadService.java:65) 在 android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3327) 在 android .app.ActivityThread.-wrap21(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper .loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6121) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android。internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

0 投票
1 回答
121 浏览

android - 如何将 layout_marginBottom 增加多个像素?

在游戏中,我在 FrameLayout 中显示自定义视图和 FAB:

然而,FAB 显示得太低,并遮挡了底部的浅蓝色条:

截屏

我需要增加layout_marginBottom浅蓝色条的高度(由上面屏幕截图中的红色箭头指示),以便 FAB 向上移动。

我确实知道以像素为单位的条形高度(我的自定义视图的内容由矩阵缩放)并且我认为我知道此操作的正确位置(onSizeChanged我的自定义视图中的方法) - 但我的困难是掌握FAB 的layout_marginBottom价值。

请问如何访问和更改?我努力了:

顺便说一句dppx如果需要,我确实有两种方法可以在两者之间进行翻译:

0 投票
1 回答
554 浏览

android - 将始终可见的聊天头的 LayoutParams 更改为不始终可见

我正在尝试添加通过服务生成的视图。我使用的代码基于始终可见的Facebook Chatheads,无论应用程序状态如何。它们也显示在其他任何东西之上:

在此处输入图像描述 安卓聊天头

我现在希望将聊天头限制在活动应用程序中。具体来说,每当我将 Window.LayoutParams 从 TYPE_PHONE 更改为 TYPE_DRAWN_APPLICATION 时,我都会处理 Bad Token Exception。

我的问题:我知道我需要将正确的窗口令牌传递给 LayoutParams,但似乎无法弄清楚如何正确执行此操作。任何建议将不胜感激。

这是我的代码:

//主要活动

//XML - 自定义 Bubble_layout

//在气泡管理器中

//在气泡服务中

///我收到的错误

关于如何在应用程序处于暂停状态时将聊天头限制在应用程序窗口而不保留在屏幕上的任何建议?

Z