在我的应用程序中,我需要将两个xml文件显示为一个xml,因此我使用了ScrollView布局。但 在cardetails2 xml文件中我使用了GridView,因为我需要将数据显示为行列格式,这个数据来自远程服务器我将这些数据绑定到GridView.I使GridView Scrollable因为数据很大而我首先需要只显示3行。当我滚动GridView时,将显示另一行。但是当尝试滚动gridView时它不起作用只有父滚动查看工作。任何人都知道它为什么不工作。我已经在googling中浪费了很多时间。我正在附加xml文件所以得到更多的想法。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EFF1F0"
android:orientation="vertical">
<LinearLayout android:id="@+id/car_details_header"
android:layout_width="match_parent"
android:background="#000000"
android:layout_height="60dp">
<Button
android:id="@+id/btn_cardet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/back_btn" />
</LinearLayout>
<LinearLayout
android:id="@+id/cardetails_name"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#848484" >
<TextView
android:id="@+id/txt_carname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Large Text"
android:layout_marginLeft="10dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout android:id="@+id/cardetails_price"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#01A9DB"
android:orientation="vertical">
<TextView
android:id="@+id/txt_cardetails_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout
android:id="@+id/cardetails_main_context"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Deepak" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:src="@drawable/img1" />
</LinearLayout>
第二个xml文件
<?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="fill_parent"
android:layout_height="wrap_content"
android:background="#EFF1F0"
android:fillViewport="true"
android:padding="5dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<GridView
android:id="@+id/cardetail_grid"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:numColumns="2"
android:verticalSpacing="1dp"
android:background="#ECCEF5">
</GridView>
<Button
android:id="@+id/btn_cardetails_req"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/request_quote_btn"/>
<Button
android:id="@+id/btn_cardetails_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/call_btn" />
</LinearLayout>
</ScrollView>
Here is main xml file
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EFF1F0" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include layout="@layout/cardetails"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<include layout="@layout/cardetails2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
答案 0 :(得分:1)
如您所知,gridview继承自scrollView。所以在滚动高度计算过程中会出现一些问题。 您可以覆盖gridview的OnMesure方法,它可以很好地工作。
sample var1a var1b var1c var2a var2b var2c
1 -169.784 -155.414 -146.555 -175.295 -159.534 -132.511
2 -180.577 -180.792 -178.192 -177.294 -171.809 -166.147
3 -178.605 -184.183 -177.672 -167.321 -168.572 -165.335
然后使用MyGridView而不是GridView。你可以滚动它。
答案 1 :(得分:0)
Add scrollview to first xml :: like as below
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EFF1F0"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout android:id="@+id/car_details_header"
android:layout_width="match_parent"
android:background="#000000"
android:layout_height="60dp">
<Button
android:id="@+id/btn_cardet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/back_btn" />
</LinearLayout>
<LinearLayout
android:id="@+id/cardetails_name"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#848484" >
<TextView
android:id="@+id/txt_carname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Large Text"
android:layout_marginLeft="10dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout android:id="@+id/cardetails_price"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#01A9DB"
android:orientation="vertical">
<TextView
android:id="@+id/txt_cardetails_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout
android:id="@+id/cardetails_main_context"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Deepak" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:src="@drawable/img1" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>