2016-07-27 293 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",因为它们不需要适合系统窗口。

相关问题