2016-06-02 5 views
0

나는 사용자 지정 목록보기에서 작업 중이며 각 행은 2 개의 이미지보기를 배경으로 사용합니다. 각 항목 사이의 공백이 남아 있다는 사실을 제외하고는 모두 잘 작동합니다. 여기 내 코드 :빈 공간 제거 목록보기 안드로이드

처음 내 list_row.xml. 2 개의 이미지 뷰는 첫 번째 이미지를 어둡게 만들고 텍스트를 훨씬 쉽게 읽을 수 있도록하는 그림과 어두운 오버레이입니다. 각 행의 배경으로 작동합니다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<!-- BG Image --> 
<ImageView 
    android:id="@+id/image_bg" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentTop="true"/> 

<!-- Dark Overlay for BG Image --> 
<ImageView 
    android:id="@+id/image_bg_over" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentTop="true" /> 

<TextView 
    android:id="@+id/filler" 
    android:layout_width="wrap_content" 
    android:layout_height="40dp" 
    android:layout_centerHorizontal="true" /> 

<!-- Bar Name --> 
<TextView 
    android:id="@+id/barname" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@id/filler" 
    android:textSize="@dimen/title" 
    android:textStyle="bold" 
    android:textColor="@color/list_text_color"/> 

<!-- Address --> 
<TextView 
    android:id="@+id/address" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/barname" 
    android:gravity="center" 
    android:layout_marginTop="1dip" 
    android:textColor="@color/list_text_color" 
    android:textSize="@dimen/rating"/> 

<!-- Text CheckIn/CheckOut --> 
<TextView 
    android:id="@+id/check" 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/address" 
    android:layout_marginTop="10dp" 
    android:layout_centerHorizontal="true" 
    android:textColor="@color/list_text_color" 
    android:textSize="@dimen/genre"/> 

<!-- Image CheckIn/CheckOut --> 
<ImageView 
    android:id="@+id/checkImg" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_marginTop="10dp" 
    android:layout_below="@+id/address" 
    android:gravity="right" 
    android:layout_toRightOf="@+id/check" 
    android:adjustViewBounds="true" /> 


</RelativeLayout> 

그럼 내 어댑터 :

public View getView(int position, View convertView, ViewGroup parent) { 
    if (inflater == null) 
     inflater = (LayoutInflater) activity 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    if (convertView == null) 
     convertView = inflater.inflate(R.layout.list_row, null); 

    ImageView bgImg = (ImageView) convertView.findViewById(R.id.image_bg); 
    ImageView bgImgOver = (ImageView) convertView.findViewById(R.id.image_bg_over); 

    TextView barname = (TextView) convertView.findViewById(R.id.barname); 
    TextView address = (TextView) convertView.findViewById(R.id.address); 
    ImageView checkImg = (ImageView) convertView.findViewById(R.id.checkImg); 
    TextView check = (TextView) convertView.findViewById(R.id.check); 

    Bar m = barItems.get(position); 

    bgImg.setImageResource(R.drawable.bg_default); 
    bgImgOver.setImageResource(R.drawable.bg_darkover); 

    barname.setText(m.getPlaceName()); 
    address.setText(m.getAddress()); 
    check.setText("Check-In"); 
    checkImg.setImageResource(R.drawable.ic_checkin); 

    return convertView; 
} 

조각의 XML :

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { //Otherwise can't use findViewById 
    listView = (ListView) getView().findViewById(R.id.list); 
    adapter = new CustomListAdapter(getActivity(), barList); 
    listView.setAdapter(adapter); 

    Bar bar1 = new Bar(); 
    bar1.setPlaceName("place1"); 
    bar1.setAddress("Addr1"); 
    barList.add(bar1); 
    Bar bar2 = new Bar(); 
    bar2.setPlaceName("place2"); 
    bar2.setAddress("Addr2"); 
    barList.add(bar2); 
    Bar bar3 = new Bar(); 
    bar3.setPlaceName("place3"); 
    bar3.setAddress("Addr3"); 
    barList.add(bar3); 
    adapter.notifyDataSetChanged(); 

    listView.setDivider(null); 
    listView.setDividerHeight(0); 
} 
:

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

<ListView 
    android:id="@+id/places_list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

</RelativeLayout> 

조각의 onViewCreated 방법은있는 내가 목록보기를 만들

setDivider를 사용하면 공백이 아닌 검은 색 칸막이를 표시합니다. 스크린 샷에서 공간을 볼 수 있습니다. listView_blank_space

이 공간을 만드는 상대 레이아웃 내부에서 실수를 한 것 같지만 도움이되는 곳을 찾을 수 없습니다!

+0

이 당신의 목록보기 XML –

+1

가능한 중복 게시 [안드로이드 목록보기 항목 사이의 공백을 제거 (http://stackoverflow.com/questions/24372535/android-listview-remove-any-space-between-items) – Ironman

+0

에 편집 됨 내 조각 XML을 추가하십시오. 나는 그것이 중복이라고 생각하지 않는다. 전에 체크해 봤더니,'listView.setDivider (null); listView.setDividerHeight (0);'그러나 문제를 해결하지 못했습니다 –

답변

1
<!-- BG Image --> 
<ImageView 
    android:id="@+id/image_bg" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="fitXY" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentTop="true"/> 
<!-- Dark Overlay for BG Image -->

과 맨 위 항목 RelativeLayout 세트의 고정 높이

동일한 옵션;

+0

그 트릭을했습니다. 그러나 고정 레이아웃을 고정 레이아웃으로 설정하면 무엇을 의미합니까? 변수가 됨으로써 내용을 감싸면 문제가 발생할 수 있습니까? 그렇다면 고정 된 높이를 dp의 값으로 설정합니까? –

+0

coz android : scaleType = "fitXY"android : layout_height = "wrap_content"in 이미지는 실제 이미지 크기에 coz wrap_content base를 사용하는 것은 좋지 않습니다. 그러나 scale fitXY는 모든 공간에 맞게 조정됩니다. 뭐든지 - 조금 실험해야합니다.) –

+0

실제로 나는 그걸로 놀고 있었고 부모에게 고정 시켰습니다. 감사! –

0

내가 이미지 배경 충분한 높이, 이미지 배경이이 속성을 추가하고 볼 생각

android:scaleType="centerCrop"