Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在视图中定义最大尺寸或相对尺寸?_Android_Android Layout - Fatal编程技术网

Android 如何在视图中定义最大尺寸或相对尺寸?

Android 如何在视图中定义最大尺寸或相对尺寸?,android,android-layout,Android,Android Layout,我的布局的一部分应该有两个组件:顶部的滚动视图和底部的地图视图。两个视图的大小都应该正好是父视图的一半 我有父级的大小(我在已经有大小的时候切换到这个布局),但我不知道如何定义最大大小。此外,我认为有一种解决方案不需要定义大小;例如,使用类似Swing样式的GridLayout,或者在某处定义权重,但我还没有发现任何听起来可行的方法 我目前的方法是这样的,它定义了最小大小,当ScrollView的高度超过父视图的一半时,最小大小就会明显分开: LinearLayout.LayoutParams

我的布局的一部分应该有两个组件:顶部的滚动视图和底部的地图视图。两个视图的大小都应该正好是父视图的一半

我有父级的大小(我在已经有大小的时候切换到这个布局),但我不知道如何定义最大大小。此外,我认为有一种解决方案不需要定义大小;例如,使用类似Swing样式的GridLayout,或者在某处定义权重,但我还没有发现任何听起来可行的方法

我目前的方法是这样的,它定义了最小大小,当ScrollView的高度超过父视图的一半时,最小大小就会明显分开:

LinearLayout.LayoutParams lp =
            new LinearLayout.LayoutParams(totalWidth, viewHeight);
scrollView.setLayoutParams(lp);
布局(父级是线性布局):

我的布局的一部分应该有两个组件:顶部的滚动视图和底部的地图视图。两个视图的大小都应该正好是父视图的一半

将它们放置在
线性布局中
。将每个的高度设置为
0px
。将每个的重量设置为
1

例如:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">
<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="0px"
    android:layout_weight="1"/>
<Button
    android:layout_width="fill_parent"
    android:layout_height="0px"
    android:layout_weight="1"/>
</LinearLayout> 

此外,我认为有一种解决方案不需要定义尺寸……或者在某个地方定义重量


如果你不明确地告诉它它有多大(“定义大小”)或隐含地(“定义重量”),你怎么能期望知道它应该是“正好是父对象大小的一半”?

我知道Mark可以胜任这项任务!没有太大的布局问题。首先,大多数Android布局都是在“最小高度”的概念下运行的,因此在测量之后,视图将获得测量的高度,或者如果使用fill_parent,则获得整个父视图的高度。至于第二个问题,逗号用于分隔示例,即“我认为有一种解决方案不需要定义大小:[示例从这里开始]使用网格布局或定义权重”。抱歉,这有点含糊不清。顺便说一句,我试过了,效果不错,但没有最低高度。ScrollView最初的高度很小,所以地图占据了大部分屏幕。随着ScrollView的增长,它占据了更多的空间,但决不会超过高度的一半,这很好。我接受你的回答,但你知道如何使用它吗将最小尺寸设置为父视图的一半?@EboMike:“滚动视图最初的高度非常小,因此地图占据了大部分屏幕。”--参见我上面添加的示例。
滚动视图
按钮
各占屏幕的50%。无论
滚动视图
是空的还是比屏幕大,这一点都是正确的。我是个笨蛋。父线布局的高度是wrap_内容。现在它很完美。再次感谢你,马克,你是桅杆任何布局相关的r!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">
<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="0px"
    android:layout_weight="1"/>
<Button
    android:layout_width="fill_parent"
    android:layout_height="0px"
    android:layout_weight="1"/>
</LinearLayout>