- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我会在不改变真正的 xml 的情况下尽可能地简化:
<TextView
android:id="@+id/txtTitleDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"/>
<android.support.v4.view.ViewPager
android:id="@+id/datePickerPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txtTitleDate"/>
<TextView
android:id="@+id/txtPriorityDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="50dp"
android:layout_below="@+id/datePickerPager"
android:layout_alignParentBottom="true"/>
<LinearLayout
android:id="@+id/layoutPriorityDate"
android:layout_width="200dp"
android:layout_height = "wrap_content"
android:layout_alignTop="@+id/txtPriorityDate"
android:layout_alignParentRight="true"
android:orientation="vertical">
<!-- omitted -->
</LinearLayout>
没有 ViewPager,我有足够的空间在底部显示 LinearLayout
。但这最终导致 ViewPager
占用了比它应有的更多的空间,并流过父 View 。
如何在没有任何硬编码大小值的情况下优先使用 LinearLayout
来使用空间?
谢谢。
最佳答案
您可以使用 LinearLayout
中的 android:layout_weight
属性来解决这个问题。
如 Linear Layout site from the API Guide 中所述:
This attribute assigns an "importance" value to a view in terms of how much space is should occupy on the screen. A larger weight value allows it to expand to fill any remaining space in the parent view. Child views can specify a weight value, and then any remaining space in the view group is assigned to children in the proportion of their declared weight. Default weight is zero.
在您的情况下,将其他 View 嵌套在 LinearLayout 中即可完成工作:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >
<TextView
android:id="@+id/txtTitleDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:layout_marginBottom="30dp"/>
<android.support.v4.view.ViewPager
android:id="@+id/datePickerPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_below="@+id/txtTitleDate"/>
<TextView
android:id="@+id/txtPriorityDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="50dp"
android:layout_below="@+id/datePickerPager"
android:layout_weight="2"
android:layout_alignParentBottom="true"/>
<LinearLayout
android:id="@+id/layoutPriorityDate"
android:layout_width="200dp"
android:layout_height = "wrap_content"
android:layout_alignTop="@+id/txtPriorityDate"
android:layout_alignParentRight="true"
android:layout_weight="2"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
您应该使用不同的权重值进行一些测试,以满足您的精确需求。
关于android - 相对布局 : giving priority to a view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28023223/
我是一名优秀的程序员,十分优秀!