滚动不能仅在屏幕中间工作

我正在开发购物应用程序。在一个活动中,我在表格布局中有一个项目列表。该表具有标题行和两个页脚行。我只想在中间激活滚动。滚动不能仅在屏幕中间工作

为了实现我有3个TableLayouts。 1只包含标题行。 1包含主项目列表,1包含页脚行。以下是我的代码。

<?xml version="1.0" encoding="utf-8"?> 

<GridLayout

android:layout_height="fill_parent"

android:layout_width="match_parent"

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

tools:context="com.example.ahnaf.homemgt.Cart"

android:columnCount="1"

android:rowCount="5"

>

<android.support.design.widget.AppBarLayout

android:id="@+id/appBarLayout"

android:layout_width="match_parent"

android:layout_height="50dp"

android:theme="@style/AppTheme.AppBarOverlay"

android:background="@android:color/black"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent">

<Button

android:id="@+id/button7"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_weight="1"

android:background="@android:color/transparent"

android:text="HomeMGT" />

</android.support.design.widget.AppBarLayout>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

>

<TableRow

android:minHeight="40dp">

<Button

android:id="@+id/addItem"

style="@style/Widget.AppCompat.Button.Borderless"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:layout_span="4"

android:background="@android:color/holo_blue_dark"

android:minHeight="0dp"

android:minWidth="0dp"

android:onClick="addItem"

android:text="Add Item To Cart"

android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

</TableRow>

</TableLayout>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

>

<TableRow

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:color/background_dark"

android:gravity="center_horizontal">

<TextView

android:id="@+id/textView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="0"

android:text="Name"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Qty"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Price"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Subtotal"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

</TableRow>

</TableLayout>

<ScrollView>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

android:id="@+id/myTableLayout">

</TableLayout>

</ScrollView>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

android:layout_gravity="bottom"

>

<TableRow

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:color/background_dark"

android:gravity="center_horizontal">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="2"

android:text="Total"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/total"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="3"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

</TableRow>

<TableRow

android:minHeight="40dp">

<Button

android:id="@+id/cashOut"

style="@style/Widget.AppCompat.Button.Borderless"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:layout_span="4"

android:background="@android:color/holo_blue_dark"

android:minHeight="0dp"

android:minWidth="0dp"

android:onClick="addItem"

android:text="Cash Out"

android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

</TableRow>

</TableLayout>

</GridLayout>

起初一切正常,但是当我添加了太多的项目我的滚动不起作用。包含“取出”按钮和总文本视图的最后两行也会消失。我在这里做错了什么?

*****************************用以下代码解决************ *******

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout android:layout_width="match_parent"

android:layout_height="match_parent"

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto">

<GridLayout

android:layout_height="fill_parent"

android:layout_width="match_parent"

android:layout_below="@id/appBarLayout"

android:columnCount="1"

android:rowCount="5"

>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

>

<TableRow

android:minHeight="40dp">

<Button

android:id="@+id/addItem"

style="@style/Widget.AppCompat.Button.Borderless"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:layout_span="4"

android:background="@android:color/holo_blue_dark"

android:minHeight="0dp"

android:minWidth="0dp"

android:onClick="addItem"

android:text="Add Item To Cart"

android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

</TableRow>

</TableLayout>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

>

<TableRow

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:color/background_dark"

android:gravity="center_horizontal">

<TextView

android:id="@+id/textView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="0"

android:text="Name"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Qty"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Price"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Subtotal"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

</TableRow>

</TableLayout>

<ScrollView

android:layout_height="wrap_content"

android:layout_width="match_parent">

<!--<LinearLayout-->

<!--android:layout_width="match_parent"-->

<!--android:layout_height="wrap_content"-->

<!--android:orientation="vertical"-->

<!--android:id="@+id/myLinearLayout">-->

<TableLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:stretchColumns="0,1,2,3"

android:id="@+id/myTableLayout">

</TableLayout>

<!--</LinearLayout>-->

</ScrollView>

</GridLayout>

<GridLayout

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:layout_alignParentBottom="true"

android:columnCount="1"

android:rowCount="5"

>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

android:layout_gravity="bottom"

>

<TableRow

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:color/background_dark"

android:gravity="center_horizontal">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="2"

android:text="Total"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/total"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="3"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

</TableRow>

<TableRow

android:minHeight="40dp">

<Button

android:id="@+id/cashOut"

style="@style/Widget.AppCompat.Button.Borderless"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:layout_span="4"

android:background="@android:color/holo_blue_dark"

android:minHeight="0dp"

android:minWidth="0dp"

android:onClick="addItem"

android:text="Cash Out"

android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

</TableRow>

</TableLayout>

</GridLayout>

</RelativeLayout>

回答:

让我知道,如果下面的代码为你工作,我在一个相对布局包裹一切再分你的网格布局分为两个,第一个是在,而顶部另一种是固定在屏幕的屏幕,顶级的GridView的底部有你滚动视图是滚动和“页脚”是粘性使刚刚中间部分卷轴:

<RelativeLayout android:layout_width="match_parent" 

android:layout_height="match_parent"

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto">

<GridLayout

android:layout_height="fill_parent"

android:layout_width="match_parent"

android:layout_below="@id/appBarLayout"

android:columnCount="1"

android:rowCount="5"

>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

>

<TableRow

android:minHeight="40dp">

<Button

android:id="@+id/addItem"

style="@style/Widget.AppCompat.Button.Borderless"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:layout_span="4"

android:background="@android:color/holo_blue_dark"

android:minHeight="0dp"

android:minWidth="0dp"

android:onClick="addItem"

android:text="Add Item To Cart"

android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

</TableRow>

</TableLayout>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

>

<TableRow

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:color/background_dark"

android:gravity="center_horizontal">

<TextView

android:id="@+id/textView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="0"

android:text="Name"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Qty"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Price"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/textView4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="1"

android:text="Subtotal"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

</TableRow>

</TableLayout>

<ScrollView

android:layout_height="wrap_content"

android:layout_width="wrap_content">

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical">

<!--/*Add your content here*/-->

</LinearLayout>

</ScrollView>

</GridLayout>

<GridLayout

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:layout_alignParentBottom="true"

android:columnCount="1"

android:rowCount="5"

>

<TableLayout

android:layout_height="wrap_content"

android:layout_width="match_parent"

android:stretchColumns="0,1,2,3"

android:layout_gravity="bottom"

>

<TableRow

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:color/background_dark"

android:gravity="center_horizontal">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="2"

android:text="Total"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

<TextView

android:id="@+id/total"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_column="3"

android:textColor="@android:color/background_light"

android:textAlignment="center"/>

</TableRow>

<TableRow

android:minHeight="40dp">

<Button

android:id="@+id/cashOut"

style="@style/Widget.AppCompat.Button.Borderless"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:layout_span="4"

android:background="@android:color/holo_blue_dark"

android:minHeight="0dp"

android:minWidth="0dp"

android:onClick="addItem"

android:text="Cash Out"

android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

</TableRow>

</TableLayout>

</GridLayout>

</RelativeLayout>

以上是 滚动不能仅在屏幕中间工作 的全部内容, 来源链接: utcz.com/qa/266888.html

回到顶部