2016-07-27 38 views
0

我的應用程序的recyclerview上有空格,我不知道爲什麼會出現,因爲我使用recyclerview和此適配器完成了相同的操作,但沒有添加不需要的空間......但現在它是。 幫助請Android中的recyclerview項目中的不需要的空間android

First screenshot

這裏是我的家佈局

<?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" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="ideias.prime.mungano.Home" 
    tools:showIn="@layout/activity_home"> 

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

這裏是recyclerview項目模型

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/tools" 
xmlns:card_view="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<android.support.v7.widget.CardView 
    android:id="@+id/cl_CardView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?android:attr/selectableItemBackground" 
    android:clickable="true" 
    card_view:cardBackgroundColor="@color/colorAccent" 
    card_view:cardCornerRadius="12dp" 
    card_view:cardUseCompatPadding="true" 
    card_view:contentPadding="6dp"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <TextView 
      android:id="@+id/cl_name" 
      android:layout_width="69dp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentStart="true" 
      android:ellipsize="end" 
      android:fitsSystemWindows="true" 
      android:padding="4dp" 
      android:singleLine="true" 
      android:text="@string/cl_name" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" 
      android:typeface="serif" /> 

     <TextView 
      android:id="@+id/nome_do_cliente" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toEndOf="@+id/cl_name" 
      android:ellipsize="end" 
      android:fitsSystemWindows="true" 
      android:padding="4dp" 
      android:singleLine="true" 
      android:text="@string/programmer" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" 
      android:typeface="serif" /> 

     <TextView 
      android:id="@+id/cl_work" 
      android:layout_width="82dp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/cl_name" 
      android:ellipsize="end" 
      android:fitsSystemWindows="true" 
      android:padding="4dp" 
      android:singleLine="true" 
      android:text="@string/cl_work" 
      android:textAlignment="center" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" 
      android:typeface="serif" /> 

     <TextView 
      android:id="@+id/trabalho_do_cliente" 
      android:layout_width="99dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/cl_work" 
      android:layout_toEndOf="@+id/cl_work" 
      android:ellipsize="end" 
      android:fitsSystemWindows="true" 
      android:singleLine="true" 
      android:text="@string/primeIdeas" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" 
      android:typeface="serif" /> 

     <TextView 
      android:id="@+id/cl_phone" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/cl_work" 
      android:fitsSystemWindows="true" 
      android:padding="4dp" 
      android:text="@string/cl_phone" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" /> 

     <TextView 
      android:id="@+id/telefone_do_cliente" 
      android:layout_width="99dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/cl_phone" 
      android:layout_toEndOf="@+id/cl_work" 
      android:ellipsize="end" 
      android:fitsSystemWindows="true" 
      android:singleLine="true" 
      android:text="@string/primeIdeas" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" 
      android:typeface="serif" /> 

     <TextView 
      android:id="@+id/cl_LP" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/trabalho_do_cliente" 
      android:layout_alignParentEnd="true" 
      android:ellipsize="end" 
      android:ems="10" 
      android:fitsSystemWindows="true" 
      android:padding="4dp" 
      android:singleLine="true" 
      android:text="@string/cl_LP" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" /> 

     <TextView 
      android:id="@+id/cl_LP_info" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/telefone_do_cliente" 
      android:layout_alignParentEnd="true" 
      android:ellipsize="end" 
      android:ems="10" 
      android:fitsSystemWindows="true" 
      android:padding="4dp" 
      android:singleLine="true" 
      android:text="@string/cl_Lp_info" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" /> 

     <TextView 
      android:id="@+id/cl_id" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="53dp" 
      android:layout_toEndOf="@+id/cl_phone" 
      android:ellipsize="end" 
      android:ems="10" 
      android:fitsSystemWindows="true" 
      android:padding="4dp" 
      android:singleLine="true" 
      android:text="@string/Id" 
      android:textColor="@color/colorPrimaryText" 
      android:textSize="15sp" 
      android:visibility="gone" /> 
    </RelativeLayout> 
</android.support.v7.widget.CardView> 
</LinearLayout> 

這裏是適配器

public class Rv_adapter extends RecyclerView.Adapter<Rv_adapter.Holder> { 
private Context context; 
private List<Model> list = new ArrayList<>(); 
private Face f; 

public Rv_adapter(Context c) { 
    context = c; 
} 

public Rv_adapter(Context c, List<Model> l) { 
    this.context = c; 
    this.list = l; 
} 

public void Listenner(Face interfaCe) { 
    this.f = interfaCe; 
} 

@Override 
public Holder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(context.getApplicationContext()).inflate(R.layout.rv_model, parent, false); 
    return new Holder(v); 
} 

@Override 
public void onBindViewHolder(Holder holder, int position) { 
    holder.Id.setText(list.get(position).getId()); 
    holder.Name.setText(list.get(position).getName()); 
    holder.Lp.setText(list.get(position).getLp()); 
    holder.Phone.setText(list.get(position).getPhone()); 
    holder.Work.setText(list.get(position).getWork()); 
} 

@Override 
public int getItemCount() { 
    return list.size(); 
} 

class Holder extends RecyclerView.ViewHolder { 
    private CardView c; 
    private TextView Id, Name, Work, Phone, Lp; 

    public Holder(View i) { 
     super(i); 
     c = (CardView) i.findViewById(R.id.cl_CardView); 
     Id = (TextView) i.findViewById(R.id.cl_id); 
     Name = (TextView) i.findViewById(R.id.nome_do_cliente); 
     Work = (TextView) i.findViewById(R.id.trabalho_do_cliente); 
     Phone = (TextView) i.findViewById(R.id.telefone_do_cliente); 
     Lp = (TextView) i.findViewById(R.id.cl_LP_info); 
    } 
} // end 

public interface Face { 
    void Clicked(View v, int position, String cl_id); 
} 
} 

這裏去不必要的空間的截圖上recyclerview

First

Secound

Third

+0

請張貼問題的屏幕截圖來演示什麼是無用空間。 – bpachev

+0

@bpachev:我jjust編輯我的文章添加recyclerview的屏幕截圖與不需要的空間 –

+0

沒有屏幕截圖。你可以檢查你是否正確添加它? – ono

回答

0

改變你的身高recyclerview從android:layout_height="match_parent"android:layout_height="wrap_content"

以及爲什麼你要給你的相對佈局滾動行爲? RecyclerView已經很好了!

+0

你爲什麼要那樣做?你不會'wrap_content' ListView ... –

+0

但他使用的是RecyclerView而不是ListView –

+0

RecyclerView本質上是一個列表的替代品。我希望人們希望列表能夠佔據整個屏幕,而不僅僅是其子元素的大小。 –

0

沒有您recyclerview沒有問題,你應該在R.layout.rv_model文件更改。您已將android:fitsSystemWindows="true"屬性設置爲<TextView>

大多數情況下,您的應用程序不需要在狀態欄或導航欄下繪製,但如果您這麼做:您需要確保交互式元素(如按鈕)不會隱藏在它們下面。這就是android:fitsSystemWindows =「true」屬性的默認行爲:它設置View的填充以確保內容不覆蓋系統窗口。

有幾件事情要記住:

fitsSystemWindows應用深度優先 - 排序問題:它是第一個觀點,即消費有差別

插圖總是相對於整個窗口的插圖 - 在佈局發生之前甚至可以應用插入,因此不要假定默認行爲在應用填充時知道視圖的位置

您設置的任何其他填充都會被覆蓋 - 您會注意到paddingLeft /如果你正在使用paddingTop/etc是無效的在同一視圖上的android:fitsSystemWindows =「true」

而且,在許多情況下,例如全屏幕視頻播放,就足夠了。對於您想要插入的控件,您將擁有完全流血視圖而不帶任何屬性,另一個全屏視圖組帶有android:fitsSystemWindows =「true」。

或者,您可能希望您的RecyclerView在透明導航欄下滾動 - 通過將android:fitsSystemWindows =「true」與android:clipToPadding =「false」結合使用,您的滾動內容將位於控件的後面,但當滾動到最後,最後一項仍然會被填充到導航欄上方(而不是隱藏在下面!)。如果你想了解android:fitsSystemWindows

0

你的項目佈局,填補每一個屏幕的一個長度的更多信息

檢查。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/tools" 
xmlns:card_view="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" <!-- Here needs to be wrap_content --> 
android:orientation="vertical"> 

<android.support.v7.widget.CardView 
    android:id="@+id/cl_CardView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 

並從TextView中刪除android:fitsSystemWindows="true",因爲它們不需要適合系統窗口。

相關問題