【问题标题】:Issue with SearchBar and RecyclerView and CardViewSearchBar 和 RecyclerView 和 CardView 的问题
【发布时间】:2018-09-25 08:17:44
【问题描述】:

我正在按照教程Android Development Tutorial - Search on SQLite data 使用SearchBar。我的布局有问题。请看附图。我正在使用CardViewRecyclerView。你能告诉我我的布局有什么问题吗?

查看图片

ma​​in_activity.xml

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.mancj.materialsearchbar.MaterialSearchBar
        android:id="@+id/search_bar"
        android:layout_alignParentTop="true"
        app:mt_speechMode="false"
        app:mt_hint="Search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

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

    </android.support.v7.widget.RecyclerView>

</RelativeLayout>

layout_item.xml

<android.support.v7.widget.CardView
    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"
    app:cardElevation="0dp"
    android:layout_margin="9dp">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_margin="8dp"
        android:background="@android:color/white"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:src="@drawable/ic_account_circle_black_24dp"
            android:layout_width="70dp"
            android:layout_height="70dp" />

        <LinearLayout
            android:orientation="vertical"
            android:layout_weight="9"
            android:layout_width="0dp"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/name"
                android:layout_marginLeft="10dp"
                android:gravity="center_vertical|start"
                android:textAllCaps="true"
                android:textStyle="bold"
                android:text="Eddy Lee"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:id="@+id/email"
                android:layout_marginLeft="10dp"
                android:gravity="center_vertical|start"
                android:textStyle="italic"
                android:text="eddylee@aol.com"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:id="@+id/phone"
                android:layout_marginLeft="10dp"
                android:gravity="center_vertical|start"
                android:textAllCaps="true"
                android:textStyle="bold"
                android:text="(222)888-888"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:id="@+id/address"
                android:layout_marginLeft="10dp"
                android:gravity="center_vertical|start"
                android:textAllCaps="true"
                android:textStyle="normal"
                android:text="new york"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

            </TextView>


        </LinearLayout>
    </LinearLayout>

感谢关注

【问题讨论】:

  • layout_item.xml 父布局高度从 match_parent 更改为 wrap_content
  • @Piyush wow 工作.. 非常感谢:D

标签: java android layout android-recyclerview android-cardview


【解决方案1】:

更改您的layout_item.xml CardView height="wrap_content"

<android.support.v7.widget.CardView
    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="wrap_content"
    app:cardElevation="0dp"
    android:layout_margin="9dp">

    ...........................

</android.support.v7.widget.CardView>

【讨论】:

    【解决方案2】:

    更新您的视图并获取父级高度 wrap_content

    <android.support.v7.widget.CardView
        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="wrap_content"
        app:cardElevation="0dp"
        android:layout_margin="9dp">
    
        <LinearLayout
            android:orientation="horizontal"
            android:layout_margin="8dp"
            android:background="@android:color/white"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <ImageView
                android:src="@drawable/ic_account_circle_black_24dp"
                android:layout_width="70dp"
                android:layout_height="70dp" />
    
            <LinearLayout
                android:orientation="vertical"
                android:layout_weight="9"
                android:layout_width="0dp"
                android:layout_height="wrap_content">
    
                <TextView
                    android:id="@+id/name"
                    android:layout_marginLeft="10dp"
                    android:gravity="center_vertical|start"
                    android:textAllCaps="true"
                    android:textStyle="bold"
                    android:text="Eddy Lee"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
    
                <TextView
                    android:id="@+id/email"
                    android:layout_marginLeft="10dp"
                    android:gravity="center_vertical|start"
                    android:textStyle="italic"
                    android:text="eddylee@aol.com"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
    
                <TextView
                    android:id="@+id/phone"
                    android:layout_marginLeft="10dp"
                    android:gravity="center_vertical|start"
                    android:textAllCaps="true"
                    android:textStyle="bold"
                    android:text="(222)888-888"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
    
                <TextView
                    android:id="@+id/address"
                    android:layout_marginLeft="10dp"
                    android:gravity="center_vertical|start"
                    android:textAllCaps="true"
                    android:textStyle="normal"
                    android:text="new york"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
    
                </TextView>
    
    
            </LinearLayout>
        </LinearLayout>
    </android.support.v7.widget.CardView>
    

    【讨论】:

      【解决方案3】:

      在 layout_item 中为 cardView 使用 wrap_content

      <android.support.v7.widget.CardView
         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="wrap_content "
         app:cardElevation="0dp"
         android:layout_margin="9dp">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-23
        相关资源
        最近更新 更多