设置元素高度直到视图结束
Set element height till end of view
伙计们,我上面的代码看起来像这样:
问题是我需要硬编码设置高度以使其可见。
我想要的是将高度设置到主视图的底部。
这可以使用高度属性还是我需要使用其他属性?
我当前的实现如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".pkgFragment.LocationAddFragment">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/llLayoutAddLocation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/abLayoutAddLocation"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:orientation="vertical">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="1"
>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_columnWeight="1"
android:layout_height="match_parent"
android:text="@string/vehicle_name"/>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_columnWeight="1"
android:layout_height="match_parent"
android:text="@string/vehicle_name"/>
</GridLayout>
</LinearLayout>
<org.osmdroid.views.MapView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@id/llLayoutAddLocation"
>
</org.osmdroid.views.MapView>
</RelativeLayout>
</ScrollView>
我的 MapView height/width 不需要硬编码。我自己检查了回购协议。您可以使用 match_parent 填满整个底部区域。这是回购 MapView Sample Layout .
中的示例
我建议,不要使用 RelativeLayout
,而是使用 LinearLayout
作为 ScrollView
的 child(仅)并将 MapView
高度设置为 match_parent
.
您的代码将如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/llLayoutAddLocation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:orientation="vertical">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="1"
>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_columnWeight="1"
android:layout_height="match_parent"
android:text="@string/vehicle_name"/>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_columnWeight="1"
android:layout_height="match_parent"
android:text="@string/vehicle_name"/>
</GridLayout>
</LinearLayout>
<org.osmdroid.views.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</org.osmdroid.views.MapView>
</LinearLayout>
编辑:
我已经编辑了答案。移除scrollview并将Parent LinearLayout的高度和宽度设置为match_parent。
伙计们,我上面的代码看起来像这样:
问题是我需要硬编码设置高度以使其可见。 我想要的是将高度设置到主视图的底部。
这可以使用高度属性还是我需要使用其他属性? 我当前的实现如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".pkgFragment.LocationAddFragment">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/llLayoutAddLocation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/abLayoutAddLocation"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:orientation="vertical">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="1"
>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_columnWeight="1"
android:layout_height="match_parent"
android:text="@string/vehicle_name"/>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_columnWeight="1"
android:layout_height="match_parent"
android:text="@string/vehicle_name"/>
</GridLayout>
</LinearLayout>
<org.osmdroid.views.MapView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@id/llLayoutAddLocation"
>
</org.osmdroid.views.MapView>
</RelativeLayout>
</ScrollView>
我的 MapView height/width 不需要硬编码。我自己检查了回购协议。您可以使用 match_parent 填满整个底部区域。这是回购 MapView Sample Layout .
中的示例我建议,不要使用 RelativeLayout
,而是使用 LinearLayout
作为 ScrollView
的 child(仅)并将 MapView
高度设置为 match_parent
.
您的代码将如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/llLayoutAddLocation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:orientation="vertical">
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="1"
>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_columnWeight="1"
android:layout_height="match_parent"
android:text="@string/vehicle_name"/>
<com.google.android.material.switchmaterial.SwitchMaterial
android:layout_columnWeight="1"
android:layout_height="match_parent"
android:text="@string/vehicle_name"/>
</GridLayout>
</LinearLayout>
<org.osmdroid.views.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</org.osmdroid.views.MapView>
</LinearLayout>
编辑: 我已经编辑了答案。移除scrollview并将Parent LinearLayout的高度和宽度设置为match_parent。