2016-07-27 7 views
0

나는 내 애플 리케이션의 recyclerview에 공백이 있으며 내가 왜 recyclerview와이 어댑터를 사용하고 원치 않는 공간을 추가하지 않았기 때문에 거기에 있는지 모른다. 그것은. 도와주세요 여기안드로이드에있는 recyclerview 항목의 불필요한 공간

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); 
} 
} 
입니다 6,

여기

Secound

Third

+0

불필요한 공간을 보여주기 위해 문제의 스크린 샷을 게시하십시오. – bpachev

+0

@bpachev : jjust는 내 게시물을 편집하여 원치 않는 공백이있는 recyclerview의 스크린 샷을 추가했습니다. –

+0

스크린 샷이 없습니다. 올바르게 추가했는지 확인할 수 있습니까? – ono

답변

0

변화 android:layout_height="match_parent"에서 android:layout_height="wrap_content"로 recyclerview 높이를

First recyclerview에 불필요한 공간의 스크린 샷을 간다.

그리고 왜 상대 레이아웃에 스크롤 동작을 제공합니까 ??? RecyclerView는 이미 그것을 가지고 있습니다!

+0

왜 그랬습니까? ListView를'wrap_content'하지 않을 것입니다 ... –

+0

그는 ListView가 아닌 ​​RecyclerView를 사용합니다. –

+0

RecyclerView는 본질적으로리스트를 대신합니다. 나는 아이들의 요소의 크기뿐만 아니라 전체 화면을 차지하는 목록을 원하기를 바란다. –

0

recyclerview 아무 문제가 없다, 당신은 R.layout.rv_model 파일에서 변경해야합니다. android:fitsSystemWindows="true" 속성을 <TextView>으로 설정했습니다.

대부분의 경우 앱은 상태 표시 줄이나 탐색 바 아래에 그릴 필요가 없지만 다음과 같은 경우에는 대화 형 요소 (버튼과 같은)가 그 아래에 숨겨져 있지 않은지 확인해야합니다. 이것이 android : fitsSystemWindows = "true"속성의 기본 동작이 당신에게주는 것입니다 : 내용이 시스템 윈도우를 오버레이하지 않도록보기 패딩을 설정합니다. 그것은

인 세트는 항상 전체 창에 상대적인 차이가 세트의 값을 소비하는 첫 번째 뷰의 - : - : 명심해야 할

몇 가지 주문 사항

fitsSystemWindows 깊이를 먼저 적용 인 세트는 레이아웃이 발생하기 전에도 적용될 수 있으므로 기본 동작이 패딩을 적용 할 때 뷰의 위치에 대해 아무것도 모르는 것으로 가정하지 마십시오.

설정 한 다른 모든 패딩을 덮어 씁니다. 패딩 왼쪽/paddingTop/etc를 사용하면 효과적이지 않습니다. android : 동일한보기에서 fitsSystemWindows = "true"

그리고 대부분의 경우 전체 화면으로 비디오를 재생하는 것만으로 충분합니다. 속성이없는 전체 블리드보기와 안드로이드가있는 또 다른 전체 화면 ViewGroup : 인세 트하려는 컨트롤에 대해 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" 

그리고 그들은 시스템 창에 맞게 필요로하지 않기 때문에 TextViews에서 android:fitsSystemWindows="true"를 제거합니다.

관련 문제