问题标签 [android-layout-weight]
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.
java - 如何使用 layout_weight 获取 LinearLayout 的像素高度
这是我的第一篇文章。我正在学习用 Java 编写 Android 应用程序的代码。我正在使用带有预定义 layout_weight(我想在将来随时更改)和设置为 MATCH_PARENT 的 LinearLayout“变量名为:ll”。我想以像素为单位获取此 LinearLayout 的高度。我使用 java (ll.addView(variableForAnObject);) 填充它。我正在尝试使用 ll.getLayoutParams().height; 但我得到-1。因为我相信这是 MATCH_PARENT 的常数。将高度设置为 0dp 会使 ll 不可见并将高度设置为 0。
请告诉我是否有办法获得它的高度。我认为我可以通过使用 DisplayMetrics 获取屏幕高度并进行几乎不可能的计算(至少对我而言)来做到这一点,但这太复杂了。
android - Android:如何在没有 Stackoverflows 和良好性能的情况下构建复杂的嵌套布局
我正在构建一个非常复杂的布局,它代表以下结构:
它具有以下布局 XML:
现在我需要像这样嵌套这块:
该结构在过去更加复杂,由于调用堆栈大小为 8/16 KB,导致第 3 个嵌套级别的堆栈溢出。当前布局可以处理 12 个嵌套级别而不会溢出,但测量时间非常高(ANR 也是),因为我使用的是嵌套权重:
以毫秒为单位测量时间:从父母到孩子
2000 1950 970 1200 500 500 240 245 135 120 70 70 35 45 21 15 8 8 4 3 1 1 0.3 0.01
- 有没有办法进一步扁平化层次结构?
- 有没有办法摆脱嵌套的权重?
- 在单独的线程中测量并同时显示一个等待圈-> 如何?
- 从单独的线程调用 parent.addView 并在一个线程中完成整个工作以防止堆栈溢出......这将出现在 12 个嵌套级别之外的某个地方。如何实施?这里已经提到过:Android:增加调用堆栈大小
android - RelativeLayout 中的布局参数无效:layout_weight
在 Eclipse 编辑器中,我的 android 布局文件出现以下错误:
布局 :
我的 layout_weight 有什么问题?
android - android:layout_weight 在方向改变时没有从正确的布局中选择值
我有一个 LinearLayout,其中包括一个 Fragment 和一个 FrameLayout。我想为它们使用 layout_weight,因为我希望 Fragment 只占据屏幕的一小部分,而 FrameLayout 应该占据屏幕的大部分。我希望 layout_weight 仅应用于宽度部分而不是高度。当平板电脑的方向发生变化时,我还希望 layout_weight 发生变化。例如。当它处于纵向模式时,我希望 Fragment 占据屏幕空间的 3/10,FrameLayout 占据 7/10,而在横向模式下,我希望 Fragment 占据屏幕空间的 2/10,FrameLayout 占据 8 /10th 屏幕空间。
我有两个单独的横向和纵向模式布局,但它不起作用。我不确定这里有什么错误:-(
布局大地\frame_main_activity.xml
和
布局大端口frame_main_activity.xml
问题是,它为两个方向选择任何一个 layout_weight 并且不会在方向更改时更新 layout_weight 。例如,在上述情况下,它只会为横向和纵向模式选择 2,8 的 layout_weight,并且不会根据方向变化更新它。
我不确定这里出了什么问题。我检查了各种教程,并在各种论坛上尝试了很多东西,但找不到任何可以解决问题的东西。
android - 缩小SlidePaneLayout Android关闭状态下覆盖布局的宽度
当 SlidePaneLayout 关闭时,它会覆盖整个窗口,当 slidePaneLayout 处于关闭状态时,我需要查看背景。
即,覆盖布局应覆盖 80%,而其余 20% 的背景应可见。
就像您在导航抽屉中看到的那样,
我已经尝试了所有的教程和库,是否有任何简单的解决方案,例如设置 layout_weight 或 layout_width?
我试过了,但没有用。
有人可以帮忙吗。
android - 将Android布局按钮变成正方形
我在使用 Android 布局时遇到了一些问题。在我的一个屏幕上,我希望将四个按钮设置为正方形,两个并排,另外两个在下方。我在另一个线程上查看了如何实现这一点,但是当我按照所说的进行操作时,它变得一团糟,根本不起作用。
这是我当前的屏幕的样子:
这是我当前制作此屏幕的 xml 代码:
谢谢!
android - 如何在 LinearLayout 中水平对齐元素?
我无法控制的高度LinearLayout
。这些将无法正确对齐并且不会填满宽度。我希望分隔线位于中间,两个按钮位于两侧。这是我的代码:
分隔符.xml
更新1:
在@Onik 的建议之后,视图仍然突出
更新 2:
我删除了该View
元素并添加了此代码LinearLayout
,它起作用了!
注意: android:divider
属性仅在Android
3.0(API 级别 11)或更高版本中可用。
实际上这个链接帮助了我并展示了放置分隔线的正确方法:如何将(垂直)分隔线添加到水平线性布局?
android - 我怎样才能给我的小部件的宽度一个百分比而不是一个明确的值?
根据 XAML 的工作原理,我想我可以给我的 android 小部件一个宽度百分比值。搜索后,我发现*理论上,“这是通过“layout_weight”属性获得的。但是使用它不会产生所需的外观。具体来说,这个xml:
...给了我这个:
我可以使用显式宽度值强制布局看起来或多或少,如下所示:
...看起来像这样:
...但是这样做(将特定的 dp val 分配给宽度)让我比一屋子摇椅中的猫更紧张。
基列有香脂吗?我的意思是,到底有没有一种分配百分比宽度的方法(当然,这确实有效)?
我使用 layout_weight 是错误的,还是我使用了错误的方法,或者它(消除想法)是不可能的?
更新
接受的答案在一种情况下有效,但在下一种情况下:
...它没有:
它占据了宽度的一半而不是全部;我必须在 EditText 小部件中添加一些“替换”对话以让它们“扩大”吗?
我可以通过添加到 EditTexts 来“强制它”:
...但这让我回到摇椅房猫的紧张状态。
更新 2
现在,即使我认为正在工作的东西也不是,或者不再是。xml是这样的:
...它看起来像这样:
IOW,在第一行,EditText 被一头古老的大象像苗条的训练师一样揉捏,在下一行,没有观察到尝试的宽度相等(虽然它实际上看起来不错,但这些标签并没有占用宽度的四分之一,但只有他们需要的,没有更多)。
而且,在所有情况下,当我将“.25”更改为“0.25”或“1”时,情况也是如此。
更新 3
好的,这就是我在 LinearLayout 中看到的,它的“layout_width”和“layout_height”属性具有“match_parent”和“wrap_content”的各种组合。
当两者都设置为 wrap_content 时:
当两者都设置为 match_parent 时:
如果 width 设置为 match_parent,height 设置为 wrap_content,则与 BOTH 设置为 match_parent 时相同。反之(height 设置为 match_parent,width 设置为 wrap_content)与设置为 wrap_content
更新 4
以下是这个特定布局文件的全部内容,虽然不是完美的,但最好的情况是:
更新 5
好的,我从中得到的是,最内部的 LinearLayouts 必须是这样的:
...以及所有其他人(在他们之上)因此:
这在大多数情况下都有效。但是 EditTexts 太微不足道了。如果我完全删除内部的 LinearLayouts,EditTexts 就会消失(或者尺寸为 0?)
android - 平板电脑上的切换按钮显示不佳
我在列表中使用了两个按钮。一个是a ToggleButton
,另一个是常规ImageButton
这是我在 XML 中设置的方式:
切换按钮的逻辑在我的列表适配器中:
问题/问题
在常规尺寸的屏幕上一切正常。但是,当我在平板电脑上进行测试时,ToggleButton
与ImageButton
. 我已经验证了所有 res 文件夹的图像大小。这就是我所拥有的:
这就是它在平板电脑上的样子
这是它在普通手机上的外观
而不是32dp
我也尝试过wrap_content
,但这也无济于事。