私はショッピングアプリを開発しています。 1つのアクティビティでは、テーブルレイアウトにアイテムリストがあります。このテーブルには、ヘッダー行とフッター行が2つあります。真ん中だけスクロールを有効にしたい私は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>
最初はすべてが正常に見えますが、あまりにも多くのアイテムを追加するとスクロールが機能しません。キャッシュアウトボタンと合計テキストビューを含む最後の2行も消えます。私はここで間違って何をしていますか?以下のコードで解決
***************************** ************ *******
<?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>
は、フッタ行がまだ消えますがスクロールしませんない作業中... – Ahnaf
更新されたコードの要点を投稿できますか? –
これは解決されました。線形レイアウトの代わりにテーブルレイアウトを使用しました...私を正しい方向に導いてくれてありがとう.. – Ahnaf