android 中带有 gridView 的 LinearLayout
LinearLayout with a gridView in android
我正在尝试在 relativeLayout 中插入 linearlayout 和 gridviewlayout。像这样:
但我得到的结果是这样的:
如何解决这个问题?我也想在他们的文本附近相应地插入排序图像和过滤图像。这是我尝试过的 XML 布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="vertical" >
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bothbuttons"
android:background="#FFFFFF"
android:columnWidth="125dp"
android:horizontalSpacing="3dp"
android:numColumns="2"
android:padding="5dp"
android:scrollbars="vertical"
android:verticalSpacing="3dp" >
</GridView>
<LinearLayout
android:id="@+id/bothsortandfilter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/grid_bg"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingBottom="10dp" >
<LinearLayout
android:id="@+id/sortLayout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".50"
android:background="@color/grid_sort"
android:gravity="center"
android:orientation="horizontal"
tools:ignore="NestedWeights" >
<TextView
android:id="@+id/sortText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Sort"
android:gravity="center"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/filterLayout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@color/grid_filter"
android:layout_weight=".50"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/filterText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Filter"
tools:ignore="ContentDescription" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
有人可以帮我解决这个问题吗?我很难得到像上面第一张图片那样的结果?
试试这个方法看看是否可行
1) 首先给你的'bothsortandfilter'一个特定的高度layout.Then给它一个权重和2。
2) 对于 sortLayout 和 filterLayout 赋予权重 1.and 对于 sortLayout 赋予 marginright 值 0f 1 dp
对于 filterlayout marginleft 为 1 dp(这些用于分隔部分)
3) 最后为 gridview 添加一个 属性 marginbottom=(height which you set for->bothsortandfilter)+1 dp.
检查这个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="#fff"
android:orientation="vertical" >
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#FFFFFF"
android:columnWidth="125dp"
android:horizontalSpacing="3dp"
android:numColumns="2"
android:padding="5dp"
android:scrollbars="vertical"
android:verticalSpacing="3dp" >
</GridView>
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar2"
android:layout_gravity="right" />
<LinearLayout
android:id="@+id/bothsortandfilter"
android:layout_width="match_parent"
android:layout_height="58dp"
android:background="@color/grid_bg"
android:orientation="horizontal" >
<TextView
android:id="@+id/sortText"
android:layout_width="0dp"
android:layout_weight="1"
android:padding="16dp"
android:layout_height="match_parent"
android:text="Sort"
android:gravity="center"
tools:ignore="ContentDescription" />
<View
android:layout_width="5dp"
android:layout_height="match_parent"
android:background="#000"/>
<TextView
android:id="@+id/filterText"
android:layout_width="0dp"
android:layout_weight="1"
android:padding="16dp"
android:layout_height="match_parent"
android:gravity="center"
android:text="Filter"
tools:ignore="ContentDescription" />
</LinearLayout>
</LinearLayout>
用按钮替换文本视图
<Button
android:id="@+id/sortText"
android:layout_width="0dp"
android:layout_weight="1"
android:padding="16dp"
android:layout_height="match_parent"
android:text="Sort"
android:gravity="center"
tools:ignore="ContentDescription"
android:background="#fff"
android:drawableLeft="@drawable/ic_sort"/>//replace with your image
我只发布底部线性布局:
<LinearLayout
android:id="@+id/bothsortandfilter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/sortLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/sortText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Sort" />
</LinearLayout>
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="@android:color/darker_gray" />
<LinearLayout
android:id="@+id/filterLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/filterText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Filter" />
</LinearLayout>
希望对您有所帮助!
为您的排序和筛选器布局提供背景(较深的灰色阴影)。
然后在 bothsortandfilter 中提供一些 layout_margin 的 2dp。
对于中间的 space,您可以为 filterLayout 元素提供 margin_left,为 sortLayout 提供 margin_right。我认为 5dp 的值应该可以解决问题。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="3">
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginBottom="30dp"
android:layout_weight="2.52"
android:columnWidth="100dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="2"
android:stretchMode="columnWidth" />
<LinearLayout
android:id="@+id/bothsortandfilter"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.5"
android:orientation="horizontal"
android:weightSum="2.2" >
<TextView
android:id="@+id/sortText"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Sort" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"
android:background="#000" />
<TextView
android:id="@+id/filterText"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:padding="16dp"
android:text="Filter" />
</LinearLayout>
我正在尝试在 relativeLayout 中插入 linearlayout 和 gridviewlayout。像这样:
但我得到的结果是这样的:
如何解决这个问题?我也想在他们的文本附近相应地插入排序图像和过滤图像。这是我尝试过的 XML 布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="vertical" >
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bothbuttons"
android:background="#FFFFFF"
android:columnWidth="125dp"
android:horizontalSpacing="3dp"
android:numColumns="2"
android:padding="5dp"
android:scrollbars="vertical"
android:verticalSpacing="3dp" >
</GridView>
<LinearLayout
android:id="@+id/bothsortandfilter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/grid_bg"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingBottom="10dp" >
<LinearLayout
android:id="@+id/sortLayout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".50"
android:background="@color/grid_sort"
android:gravity="center"
android:orientation="horizontal"
tools:ignore="NestedWeights" >
<TextView
android:id="@+id/sortText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Sort"
android:gravity="center"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/filterLayout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@color/grid_filter"
android:layout_weight=".50"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/filterText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Filter"
tools:ignore="ContentDescription" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
有人可以帮我解决这个问题吗?我很难得到像上面第一张图片那样的结果?
试试这个方法看看是否可行
1) 首先给你的'bothsortandfilter'一个特定的高度layout.Then给它一个权重和2。 2) 对于 sortLayout 和 filterLayout 赋予权重 1.and 对于 sortLayout 赋予 marginright 值 0f 1 dp 对于 filterlayout marginleft 为 1 dp(这些用于分隔部分) 3) 最后为 gridview 添加一个 属性 marginbottom=(height which you set for->bothsortandfilter)+1 dp.
检查这个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="#fff"
android:orientation="vertical" >
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#FFFFFF"
android:columnWidth="125dp"
android:horizontalSpacing="3dp"
android:numColumns="2"
android:padding="5dp"
android:scrollbars="vertical"
android:verticalSpacing="3dp" >
</GridView>
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar2"
android:layout_gravity="right" />
<LinearLayout
android:id="@+id/bothsortandfilter"
android:layout_width="match_parent"
android:layout_height="58dp"
android:background="@color/grid_bg"
android:orientation="horizontal" >
<TextView
android:id="@+id/sortText"
android:layout_width="0dp"
android:layout_weight="1"
android:padding="16dp"
android:layout_height="match_parent"
android:text="Sort"
android:gravity="center"
tools:ignore="ContentDescription" />
<View
android:layout_width="5dp"
android:layout_height="match_parent"
android:background="#000"/>
<TextView
android:id="@+id/filterText"
android:layout_width="0dp"
android:layout_weight="1"
android:padding="16dp"
android:layout_height="match_parent"
android:gravity="center"
android:text="Filter"
tools:ignore="ContentDescription" />
</LinearLayout>
</LinearLayout>
用按钮替换文本视图
<Button
android:id="@+id/sortText"
android:layout_width="0dp"
android:layout_weight="1"
android:padding="16dp"
android:layout_height="match_parent"
android:text="Sort"
android:gravity="center"
tools:ignore="ContentDescription"
android:background="#fff"
android:drawableLeft="@drawable/ic_sort"/>//replace with your image
我只发布底部线性布局:
<LinearLayout
android:id="@+id/bothsortandfilter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/sortLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/sortText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Sort" />
</LinearLayout>
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="@android:color/darker_gray" />
<LinearLayout
android:id="@+id/filterLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/filterText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Filter" />
</LinearLayout>
希望对您有所帮助!
为您的排序和筛选器布局提供背景(较深的灰色阴影)。 然后在 bothsortandfilter 中提供一些 layout_margin 的 2dp。
对于中间的 space,您可以为 filterLayout 元素提供 margin_left,为 sortLayout 提供 margin_right。我认为 5dp 的值应该可以解决问题。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="3">
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginBottom="30dp"
android:layout_weight="2.52"
android:columnWidth="100dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="2"
android:stretchMode="columnWidth" />
<LinearLayout
android:id="@+id/bothsortandfilter"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.5"
android:orientation="horizontal"
android:weightSum="2.2" >
<TextView
android:id="@+id/sortText"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Sort" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"
android:background="#000" />
<TextView
android:id="@+id/filterText"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:padding="16dp"
android:text="Filter" />
</LinearLayout>