- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的应用程序创建一个自定义对话框视图。
运行该程序时,结果与我预期的相差很大。
XML档案:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/colorPrimaryDark">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/colorAccent">
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary">
<Button
android:id="@+id/button10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
</LinearLayout>
public class SinglePSettings extends AppCompatDialogFragment {
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.layout_singlepsettings, null);
builder.setView(view)
.setTitle("Settings");
return builder.create();
}
public void onResume()
{
super.onResume();
Window window = getDialog().getWindow();
Point size = new Point();
Display display = window.getWindowManager().getDefaultDisplay();
display.getSize(size);
int width = (int)(size.x * 0.90);
int height = (int)(size.y * 0.90);
window.setLayout(width, height);
window.setGravity(Gravity.CENTER);
}
最佳答案
这是因为对话框的根目录布局高度为match_parent
,第一个子元素Linearlayout
的内容总大小为200dp +第二个子元素Linearlayout
的内容总大小为〜24dp,该大小小于对话框的总大小。
您应该将父LinearLayout
的高度更改为wrap_content
或将android:weight=1
添加到任何子LinearLayouts
更新:让我尝试解释线性布局如何工作。请注意,这些都是基于经验,您应该阅读官方文档以更好地理解。
与orientation
一致的尺寸对于线性布局的子代至关重要。因此,如果方向是水平的,则所有子级都将水平堆叠,并且需要控制其width
属性。
想象一下水平线性布局是一个家。暂时,假设您必须始终将关键属性在父线性布局中保持为match_parent
。因此,我们的线性布局/首页具有width=match_parent
。可以通过3种主要方式添加子级:
保持每个孩子为wrap_content
这意味着每个孩子将占用与其自身大小相等的屏幕空间。
如果没有。的项目数较少或屏幕尺寸足够大,此方法有效。
但是,如果它们有很多大物件,则它们所需的总空间=它们所有宽度的总和。如果该总和大于屏幕尺寸,则某些项目将不在屏幕上。
在我们的家庭类比中,就像我们将所有桌子,椅子,床等直线堆叠一样。如果它们占用的空间比2个端壁之间的空间小,则它很大,但是如果它们需要更多的水平空间,则我们必须打破壁来调整它们。
因此,不建议将所有项目都保留为wrap content
保持1个/多个孩子为match_parent
这是一个非常错误的方法。当您将孩子的宽度保持为match_parent
时,基本上就是在告诉编译器为该单个视图提供完整的屏幕空间。
而且编译器肯定会这样做。即使它是一个按钮,它也将在整个屏幕上延伸,并且其他视图实际上将不在屏幕上,因此将不可见。
当它们是带有width=match_parent
的多个视图时,它将仅将整个屏幕空间分配给从左侧开始的第一个视图。
在我们的家庭类比中,就像您将椅子的width属性更改为match_parent
一样,房间神奇地扩展了它以占据完整的空间,因此您的床,桌子等现在都被压在了床的侧面。房间。
为1个或多个孩子保留layout_weight=x
这是在线性布局中使用的最佳方法。我认为这是为视图分配屏幕百分比。
如果您的子视图具有weight=x
,则它不受视图crucial attribute
中存在的值的影响。这意味着您可以使用width= match_parent
或wrap_content
甚至1000000dp
,如果它具有weight=x
,则将其渲染为全屏视图。请注意,这里仅讨论关键属性,即本例中的宽度。
知道具有权重的视图将如何影响其他视图也非常有趣。
如果另一个视图具有width = match_parent
(并且没有weight属性),则该视图将占用整个屏幕空间,但是这次我们的WITH weight视图将不会被压缩。取而代之的是,这是应该获得的最小空间(即wrap_content或我们为width=x
传递的固定值)。
好像我们在椅子上添加了weight
属性,在床上添加了match_parent
属性。床把所有其他物品都挤掉了,但椅子仍然占据了所需的空间。
当其他项目的关键属性具有wrap_content
值(但没有权重属性)时,情况类似。这次,具有权重的视图将占据所有空间,除了其他视图所需的空间(将下面的图像与第一种情况进行比较,并注意圆现在如何占据所有剩余空间而不挤压其他视图)
当每个属性都有权重时,这将成为一个有趣的百分比游戏。如果我们有2个项目,并且每个项目都有layout_weight=1
,则无论它们的宽度如何,两者都将占用50%的空间。如果其中之一具有layout_weight=2
,则分布将为2:1,即66%:33%。这使得视图在不同的屏幕尺寸和方向上都具有响应能力
因此,在线性布局中使用子视图的最佳方法是在其关键尺寸属性和wrap_content
中包含layout_weight=x
。这将使其响应速度更快并且更易于控制。同样,我也没有过多地讨论在关键尺寸属性中设置固定权重,因为它们总是很难处理。不会详细介绍(您可以自己尝试),但最终总是会被挤压或挤压其他视图
关于java - Android:自定义对话框的大小不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61239962/
当然,您可以将剩余文件大小除以当前下载速度,但如果您的下载速度波动(而且它会波动),这不会产生很好的结果。有什么更好的算法可以产生更平滑的倒计时? 最佳答案 安exponential moving a
对于一个业余项目,我正在尝试对齐照片并创建 3D 图片。我基本上在一个钻机上有 2 个相机,我用来拍照。我会自动尝试以您获得 3D SBS 图像的方式对齐图像。 它们是高分辨率图像,这意味着需要处理大
当然,您可以将剩余的文件大小除以当前的下载速度,但如果您的下载速度波动(而且会波动),这不会产生很好的结果。什么是产生更平滑倒计时的更好算法? 最佳答案 安exponential moving ave
我有一个数据集,其中包含患有糖尿病和未患有糖尿病的人。我想使用这些数据训练一个模型来计算糖尿病状况未知的人的风险概率。我知道在培训中没有被诊断出糖尿病的人大多数都没有糖尿病,但很可能其中一些人可能患有
let parent = path[row-1] let child = path[row] let indexOfChild = matrix[parent.obje
我正在编写一些使用 Element.getBoundingClientRect 的代码(gBCR),加上内联样式更新,以执行计算。 这不适用于一般网站,我不关心或不感兴趣是否有“更好的 CSS 方式”
我有一个很大的 csv 文件,其中包含大量脏数据,我想通过消除所有不是绝对必要的值来稍微清理一下它。 Here是我正在谈论的文件。 它有以下组件: 网站,标题,开始日期,开始日期,雇主,地点,纬度,
有谁知道一个库,它为 Java 提供了一个错误不高于 1-2 毫秒的 Thread.sleep()? 我尝试了 sleep 、错误测量和 BusyWait 的混合,但在不同的 Windows 机器上我
UiApp有DateBox和 DateTimeFormat 对于那个类(class)。但是,不存在诸如 TimePicker 或 TimeBox 这样的东西,用户可以通过明确指定的方式(例如通过使用
因此,我使用 sklearn 的 svm.SVC 模块编写了一个程序来学习 mnist 数据集,出于某种原因,每当我计算其准确性为 100% 时。这似乎好得令人难以置信,这是预期的吗? from sk
我当前找到了 gpytorch ( https://github.com/cornellius-gp/gpytorch )。它似乎是将 GPR 集成到 pytorch 中的一个很棒的包。第一次测试也呈
我正在使用 QT Creator 5.9 创建一个简单的 Web 浏览器模型,我的 EditLine/Text Box 有问题: 1.如何在转到不同的网站/页面后自动更新显示的 URL 字符串。 2。
我在 Linux 上尝试 time -p 命令,我写了一些代码来浪费 CPU 周期: #include using namespace std; int main() { long int c;
亲爱的程序员/脚本编写者/工程师/其他人, 问题:我目前正在为 Android 3.2 平板电脑开发增强现实应用程序,但在获取准确的罗盘读数方面遇到一些问题。我需要确切地知道平板电脑所面向的 (z)
我最近一直在尝试了解 Apache Spark 作为 Scikit Learn 的替代品,但在我看来,即使在简单的情况下,Scikit 收敛到准确模型的速度也远远快于 Spark。例如,我使用以下脚本
如果不是,它的准确性如何? 我想在下载之前知道图片的大小。 最佳答案 HTTP Content-length header 是否格式错误?是的。 您是否应该相信它能公平地表示消息正文的大小?是的。 关
这是一个关于 ngram 线性回归的问题,使用 Tf-IDF(术语频率 - 逆文档频率)。为此,我使用 numpy 稀疏矩阵和 sklearn 进行线性回归。 使用一元语法时,我有 53 个案例和 6
对于某些给定的固定宽度,如何计算特定标签 (NSTextField) 中字符串的高度? 我用谷歌搜索了各种方法并尝试了 this method from Apple .它的工作原理,除了高度变成一行对
我是一名优秀的程序员,十分优秀!