【问题标题】:GridView is Showing only one rowGridView 只显示一行
【发布时间】:2018-02-10 02:41:58
【问题描述】:

我在 Android 中显示 GridView 的列表项时遇到问题。它只显示一行两列。我知道这是布局的问题,但我无法弄清楚我做错了什么?

  <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/hire_relative_contact_align_bottom"
            android:layout_below="@+id/book_homestay_image_linear"
            android:scrollbars="vertical">

            <LinearLayout
                android:id="@+id/linear_book_homestay_main_scrollable"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/book_homestay_image_linear"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="130dp"
                        android:layout_height="15dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2"
                        android:gravity="center"
                        android:text="Basic Detail"
                        android:textAllCaps="true"
                        android:textColor="#FFFFFF"
                        android:textSize="12sp" />

                    <View
                        android:layout_width="200dp"
                        android:layout_height="1dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2" />


                    <com.bluejamesbond.text.DocumentView

                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:layout_marginTop="10dp"
                        app:documentView_textColor="#333"
                        app:documentView_textFormat="plain"
                        app:documentView_textSize="12sp"
                        ext:documentView_textAlignment="justified" />


                </LinearLayout>


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="120dp"
                    android:layout_marginTop="10dp"
                    android:orientation="horizontal">

                    <RelativeLayout
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginRight="4dp"
                        android:layout_weight="1">

                        <ImageView
                            android:id="@+id/homestay_image_basic_detail"
                            android:layout_width="120dp"
                            android:layout_height="match_parent"
                            android:layout_alignParentRight="true"
                            android:scaleType="fitXY" />


                    </RelativeLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginLeft="4dp"
                        android:layout_weight="1"
                        android:orientation="vertical">

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:text="Host"
                            android:textAllCaps="false"
                            android:textColor="#555"
                            android:textSize="12sp"
                            android:textStyle="bold" />

                        <TextView
                            android:id="@+id/homestay_textHost"
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_marginBottom="3dp"
                            android:layout_weight="1"
                            android:text=""
                            android:textAllCaps="true"
                            android:textColor="#555"
                            android:textSize="10sp"
                            android:textStyle="normal" />


                        <TextView
                            android:id="@+id/textView3"
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:text="Address"
                            android:textAllCaps="false"
                            android:textColor="#555"
                            android:textSize="12sp"
                            android:textStyle="bold" />

                        <TextView
                            android:id="@+id/homestay_textAddress"
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_marginBottom="3dp"
                            android:layout_weight="1"
                            android:text=""
                            android:textAllCaps="true"
                            android:textColor="#555"
                            android:textSize="10sp"

                            android:textStyle="normal" />

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:text="Phone"
                            android:textAllCaps="false"
                            android:textColor="#555"
                            android:textSize="12sp"
                            android:textStyle="bold" />

                        <TextView
                            android:id="@+id/homestay_textPhone"
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_marginBottom="3dp"
                            android:layout_weight="1"
                            android:text=""
                            android:textAllCaps="true"
                            android:textColor="#555"
                            android:textSize="10sp"
                            android:textStyle="normal" />

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:text="Email"
                            android:textAllCaps="false"
                            android:textColor="#555"
                            android:textSize="12sp"
                            android:textStyle="bold" />

                        <TextView
                            android:id="@+id/homestay_textEmail"
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:text=""
                            android:textAllCaps="true"
                            android:textColor="#555"
                            android:textSize="10sp"
                            android:textStyle="normal" />


                    </LinearLayout>

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="130dp"
                        android:layout_height="15dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2"
                        android:gravity="center"
                        android:text="Description"
                        android:textAllCaps="true"
                        android:textColor="#FFFFFF"
                        android:textSize="12sp" />

                    <View
                        android:layout_width="200dp"
                        android:layout_height="1dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2" />


                    <com.bluejamesbond.text.DocumentView
                        android:id="@+id/homestay_textDescriptionjustify"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"

                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:layout_marginTop="10dp"
                        app:documentView_textColor="#333"
                        app:documentView_textFormat="plain"
                        app:documentView_textSize="12sp"
                        ext:documentView_textAlignment="justified" />


                </LinearLayout>


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="10dp"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="130dp"
                        android:layout_height="15dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2"
                        android:gravity="center"
                        android:text="Facilities"
                        android:textAllCaps="true"
                        android:textColor="#FFFFFF"
                        android:textSize="12sp" />

                    <View
                        android:layout_width="200dp"
                        android:layout_height="1dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2" />


                    <GridView
                        android:id="@+id/book_homestay_gridView_facilities"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="5dp"
                        android:layout_marginTop="30dp"


                        android:horizontalSpacing="5dp"
                        android:numColumns="2"
                        android:stretchMode="columnWidth"
                        android:verticalSpacing="5dp" />


                </LinearLayout>


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="130dp"
                        android:layout_height="15dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2"
                        android:gravity="center"
                        android:text="Meals"
                        android:textAllCaps="true"
                        android:textColor="#FFFFFF"
                        android:textSize="12sp" />

                    <View
                        android:layout_width="200dp"
                        android:layout_height="1dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2" />

                    <GridView
                        android:id="@+id/book_homestay_gridViewMeal"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="5dp"
                        android:layout_marginTop="30dp"
                        android:horizontalSpacing="5dp"
                        android:numColumns="2"
                        android:stretchMode="columnWidth"
                        android:verticalSpacing="5dp" />


                </LinearLayout>


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="130dp"
                        android:layout_height="15dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2"
                        android:gravity="center"
                        android:text="Area Facilities"
                        android:textAllCaps="true"
                        android:textColor="#FFFFFF"
                        android:textSize="12sp" />

                    <View
                        android:layout_width="200dp"
                        android:layout_height="1dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2" />

                    <GridView
                        android:id="@+id/book_homestay_gridViewAreaFacilities"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="5dp"
                        android:layout_marginTop="30dp"
                        android:horizontalSpacing="5dp"
                        android:numColumns="2"
                        android:stretchMode="columnWidth"
                        android:verticalSpacing="5dp" />


                </LinearLayout>


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="130dp"
                        android:layout_height="15dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2"
                        android:gravity="center"
                        android:text="Rooms"
                        android:textAllCaps="true"
                        android:textColor="#FFFFFF"
                        android:textSize="12sp" />

                    <View
                        android:layout_width="200dp"
                        android:layout_height="1dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2" />

                    <GridView
                        android:id="@+id/book_homestay_gridViewRooms"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="5dp"
                        android:layout_marginTop="30dp"
                        android:horizontalSpacing="5dp"
                        android:numColumns="2"
                        android:stretchMode="columnWidth"
                        android:verticalSpacing="5dp" />


                </LinearLayout>


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="130dp"
                        android:layout_height="15dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2"
                        android:gravity="center"
                        android:text="House Rules"
                        android:textAllCaps="true"
                        android:textColor="#FFFFFF"
                        android:textSize="12sp" />

                    <View
                        android:layout_width="200dp"
                        android:layout_height="1dp"
                        android:layout_gravity="center"
                        android:background="#5EB6C2" />

                    <GridView
                        android:id="@+id/book_homestay_gridViewHouseRules"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="5dp"
                        android:layout_marginTop="30dp"
                        android:horizontalSpacing="5dp"
                        android:numColumns="2"
                        android:stretchMode="columnWidth"
                        android:verticalSpacing="5dp" />


                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="10dp"
                    android:gravity="center">

                    <TextView
                        android:id="@+id/textViewRateAndReview"
                        android:layout_width="150dp"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_marginBottom="10dp"
                        android:layout_marginTop="5dp"
                        android:background="@drawable/rounded_edittext"
                        android:gravity="center"
                        android:text="@string/nameHere"
                        android:textAllCaps="true"
                        android:textColor="#4FA8B5"
                        android:textStyle="bold" />


                </LinearLayout>

            </LinearLayout>
        </ScrollView>

items_xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageViewTickMark"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginRight="5dp" />

    <TextView
        android:id="@+id/textViewFacilities"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:gravity="center"
        android:layout_gravity="center"/>

</LinearLayout>

我想要获取的图像

我得到的图像

这是一个布局问题,我知道,但我无法解决这个问题。这个问题怎么解决?

【问题讨论】:

  • 使用Gridview 中的默认高度来解决您的问题。喜欢android:layout_height="300dp"
  • 如果我设置height=300。如果物品来得更多怎么办?
  • 好的。然后您可以根据您的内容使用带有代码的动态高度。如果你的内容是固定的,那么它会运作良好。
  • 内容是动态的。但为什么这是问题所在。我用同样的方法做了同样的事情。但这一次我遇到了问题
  • 因为,ScrollView里面的GridView有问题。

标签: android android-layout android-gridview


【解决方案1】:

试试下面的代码,

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter .ViewHolder> { 


Context mContext; 
ArrayList<BookHomeStayFacilitiesPOJO> class_book_homestay_facilities = new ArrayList<>(); 
String TAG = "HomeTab_adapter"; 


public RecyclerViewAdapter(Context mContext, ArrayList<BookHomeStayFacilitiesPOJO> class_book_homestay_facilities) { 

this.mContext = mContext; 
this.class_book_homestay_facilities = class_book_homestay_facilities; 
} 

public class ViewHolder extends RecyclerView.ViewHolder { 
public TextView category; 
public ImageView imageViewCheckbox; 


public ViewHolder(View v) { 
super(v); 
category = (TextView) v.findViewById(R.id.textViewFacilities); 
imageViewCheckbox = (ImageView) v.findViewById(R.id.imageViewTickMark); 
} 
} 


@Override 
public int getItemCount() { 

System.out.println("SIze)" + class_book_homestay_facilities.size()); 
return class_book_homestay_facilities.size(); 
} 


@Override 
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.book_homestay_grid_item_facilities, parent, false); 
RecyclerView.ViewHolder viewHolder = new ViewHolder(view); 
return viewHolder; 
} 

@Override 
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { 


class_book_homestay_facilities.get(position).getCategory(); 
class_book_homestay_facilities.get(position).getImage(); 
for (int i = 0; i < class_book_homestay_facilities.size(); i++) { 
System.out.println("System" + class_book_homestay_facilities.get(i).getCategory()); 
} 
// holder.Category.setText(class_book_homestay_facilities.get(position).getCategory()); 


} 


}

在 RecyclerView 中创建两列 refer here

希望对你有帮助。

【讨论】:

  • 这只是我在堆栈中发布的一部分,我有很大的布局。需要滚动视图
  • 我只是在花时间,我的代码超过了 3000 个限制,所以请稍等
【解决方案2】:

RecycleViewGridLayoutManager 一起使用而不是GridView 很有用。

因为GridView 具有滚动功能并且您已经将ScrollView 作为父视图。

RecycleView 就是为了克服这种情况,您可以在 scrollview 中使用 recycleView,使用 NestedScrollView

你有很多解决方案来解决这个问题。

1.使用自定义GridView Custom GridView

2。使用RecycleViewNestedScrollView

3.使用ExpandlabeView Link for expandable view

在我看来recycleView 是最好的选择。

使用这个例子:-

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

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentBottom="true">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_marginTop="20dp"
            android:textColor="#ff0000"
            android:textSize="18sp"
            android:layout_marginBottom="10dp"
            android:text="All History" />


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="@dimen/size_30">

            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="10dp"
                android:text="Recent History" />

            <android.support.v4.widget.NestedScrollView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@+id/textView4">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/rv_route_layout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

            </android.support.v4.widget.NestedScrollView>
        </RelativeLayout>

    </LinearLayout>


</ScrollView>

【讨论】:

  • 我正在使用自定义 GridView。
  • 您使用的是 android GridView 而不是 custom gridView 。看看编辑答案。
  • 当然。我会看的
  • 我不能将 gridView 设为非滚动并且它会采用它的 wrapContent 大小吗?
  • 使用回收视图,这将毫无问题地工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多