我将尝试尽可能地简化而不更改真正的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
占用的空间超出应有的范围,并流过父视图。
如何在没有任何硬编码大小值的情况下优先使用LinearLayout
?
感谢。
答案 0 :(得分:1)
您可以使用android:layout_weight
中的LinearLayout
属性解决此问题。
正如Linear Layout site from the API Guide:
所述此属性根据方式为视图指定“重要性”值 屏幕上应该占用很多空间。重量值更大 允许它展开以填充父视图中的任何剩余空间。 子视图可以指定权重值,然后指定任何剩余空间 在视图组中按子女的比例分配给他们 宣称体重。默认权重为零。
在您的情况下,将其他视图嵌套在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>
您应该使用不同的重量值测试一下,以满足您的精确需求。