问题标签 [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.

0 投票
4 回答
8886 浏览

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 获取屏幕高度并进行几乎不可能的计算(至少对我而言)来做到这一点,但这太复杂了。

0 投票
2 回答
121 浏览

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:增加调用堆栈大小
0 投票
2 回答
6112 浏览

android - RelativeLayout 中的布局参数无效:layout_weight

在 Eclipse 编辑器中,我的 android 布局文件出现以下错误:

布局 :

我的 layout_weight 有什么问题?

0 投票
2 回答
999 浏览

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,并且不会根据方向变化更新它。

我不确定这里出了什么问题。我检查了各种教程,并在各种论坛上尝试了很多东西,但找不到任何可以解决问题的东西。

0 投票
1 回答
229 浏览

android - 缩小SlidePaneLayout Android关闭状态下覆盖布局的宽度

当 SlidePaneLayout 关闭时,它会覆盖整个窗口,当 slidePaneLayout 处于关闭状态时,我需要查看背景。

即,覆盖布局应覆盖 80%,而其余 20% 的背景应可见。

就像您在导航抽屉中看到的那样,

我已经尝试了所有的教程和库,是否有任何简单的解决方案,例如设置 layout_weight 或 layout_width?

我试过了,但没有用。

有人可以帮忙吗。

0 投票
1 回答
578 浏览

android - 将Android布局按钮变成正方形

我在使用 Android 布局时遇到了一些问题。在我的一个屏幕上,我希望将四个按钮设置为正方形,两个并排,另外两个在下方。我在另一个线程上查看了如何实现这一点,但是当我按照所说的进行操作时,它变得一团糟,根本不起作用。

这是我当前的屏幕的样子:

在此处输入图像描述

这是我当前制作此屏幕的 xml 代码:

谢谢!

0 投票
2 回答
8280 浏览

android - 如何在 LinearLayout 中水平对齐元素?

在此处输入图像描述

我无法控制的高度LinearLayout。这些将无法正确对齐并且不会填满宽度。我希望分隔线位于中间,两个按钮位于两侧。这是我的代码:

分隔符.xml

更新1:

在@Onik 的建议之后,视图仍然突出

在此处输入图像描述

更新 2:

我删除了该View元素并添加了此代码LinearLayout,它起作用了!

注意: android:divider属性仅在Android3.0(API 级别 11)或更高版本中可用。

实际上这个链接帮助了我并展示了放置分隔线的正确方法:如何将(垂直)分隔线添加到水平线性布局?

0 投票
2 回答
2792 浏览

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?)

0 投票
3 回答
58 浏览

xml - 为什么我的 EditTexts 根本不显示?

使用此 xml:

... EditTexts 甚至不显示。为什么?这是我的问题here的后续,它已经增长了很长时间,以至于我无法再添加它。

更新

好吧,这看起来很糟糕(“......嗯?!?我觉得我看起来有点糟糕,不是吗?!?” <=猜那个电影):

更新 2

这是该布局在 Droidio 中的设计时外观:

在此处输入图像描述

它不是优胜美地,但也不是内华达州托诺帕。

更新 3

根据我在这里阅读的内容,我将“dp”更改为“dip”。

0 投票
0 回答
249 浏览

android - 平板电脑上的切换按钮显示不佳

我在列表中使用了两个按钮。一个是a ToggleButton,另一个是常规ImageButton

这是我在 XML 中设置的方式:

切换按钮的逻辑在我的列表适配器中:

问题/问题

在常规尺寸的屏幕上一切正常。但是,当我在平板电脑上进行测试时,ToggleButtonImageButton. 我已经验证了所有 res 文件夹的图像大小。这就是我所拥有的:

这就是它在平板电脑上的样子

在此处输入图像描述

这是它在普通手机上的外观

在此处输入图像描述

而不是32dp我也尝试过wrap_content,但这也无济于事。