Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的两个gridView和一个滚动条_Android_Gridview - Fatal编程技术网

android中的两个gridView和一个滚动条

android中的两个gridView和一个滚动条,android,gridview,Android,Gridview,在一项活动中,我需要两个GridView,每个GridView的高度与所需的高度相同。没有gridview有单独的滚动条,但它们只有一个滚动条。 我试过这样的东西 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="

在一项活动中,我需要两个GridView,每个GridView的高度与所需的高度相同。没有gridview有单独的滚动条,但它们只有一个滚动条。 我试过这样的东西

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<GridView
       android:id="@+id/gridView1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"  //as much height as it needs
       android:background="#9C5353"
       android:gravity="center"
       android:horizontalSpacing="20dp"
       android:numColumns="2"
       android:layout_weight="1"
       android:scrollbars="none"
       android:stretchMode="columnWidth"
       android:verticalSpacing="20dp" >      
       </GridView>


    <GridView 
    android:id="@+id/gridView2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"   //as much height as it needs
    android:scrollbars="none"
    android:numColumns="1"
    android:layout_weight="1"
    android:horizontalSpacing="20dp"
    android:verticalSpacing="20dp"
    android:gravity="center"
    android:stretchMode="columnWidth" > 
    </GridView>

</LinearLayout>

我试了很多次,但都没有找到解决办法。
任何人都可以找到解决方法吗?

您可以将网格视图设置为固定,并使用滚动视图包含它们

public class FixedGridView extends GridView {

public FixedGridView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public FixedGridView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public FixedGridView(Context context) {
    super(context);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int expandSpec = MeasureSpec.makeMeasureSpec(
            Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
    super.onMeasure(widthMeasureSpec, expandSpec);

}

}

根据tesla1984的答案,这里是我的完整工作代码。它按预期工作:

  • 创建一个名为FlexGridView的新类,如下所示,并将其保存在项目中的已知位置。(我使用了一个名为“视图”的文件夹)

然后,在XML上执行以下操作:

  <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">
            <your.product.id.views.FixedGridView
                android:id="@+id/gridViewPublic"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:numColumns="1"
                android:stretchMode="columnWidth"
                android:horizontalSpacing="10"
                android:verticalSpacing="10"
                android:background="@color/transparent_color" />
            <your.product.id.views.FixedGridView
                android:id="@+id/gridViewPrivate"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10"
                android:layout_marginBottom="10"
                android:numColumns="2"
                android:stretchMode="columnWidth"
                android:horizontalSpacing="10"
                android:verticalSpacing="10"
                android:background="@color/transparent_color" />
        </LinearLayout>

  </ScrollView>


为什么不给second
GridView
?为什么不只使用一个
RecyclerView
?我不明白你在说什么,因为我是android新手@KetanAhirI不知道为什么要使用两个GridView。如果要为每个GridView显示不同的数据,也可以使用单个RecyclerView。请向谷歌询问一个例子。是否可以在一个滚动视图中使用两个RecyclerView@Ketanahiri我应该把这个代码放在哪里??有完整的例子吗@Tesla1984将新文件FixedGridView创建到项目中,并将布局中的GridView更改为FixedGridView。FixedGridView与GridView相同,但FixedGridView将显示所有数据,并且没有滚动条。您可以提供一个完整的示例吗@tesla1984Hey您知道为什么实现上述解决方案会导致gridview.setSelection()无法工作吗?
  <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">
            <your.product.id.views.FixedGridView
                android:id="@+id/gridViewPublic"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:numColumns="1"
                android:stretchMode="columnWidth"
                android:horizontalSpacing="10"
                android:verticalSpacing="10"
                android:background="@color/transparent_color" />
            <your.product.id.views.FixedGridView
                android:id="@+id/gridViewPrivate"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10"
                android:layout_marginBottom="10"
                android:numColumns="2"
                android:stretchMode="columnWidth"
                android:horizontalSpacing="10"
                android:verticalSpacing="10"
                android:background="@color/transparent_color" />
        </LinearLayout>

  </ScrollView>