2014-06-23 2 views
4

ListView에서 다른 아이템 사이의 공간을 제거하고 싶습니다. 코드 :안드로이드리스트 뷰는 아이템 사이의 공간을 제거합니다.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:id="@+id/wrapper" 
    android:padding="0dp" 
    android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/comment" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:paddingLeft="10dip" 
      android:paddingRight="10dip" 
      android:textColor="#000000"/> 

</LinearLayout> 

그리고 목록보기

<ListView 
     android:id="@+id/listView1" 
     android:transcriptMode="alwaysScroll" 
     android:stackFromBottom="true" 
     android:dividerHeight="0dp" 
     android:divider="@null" 
     android:listSelector="@android:color/transparent" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

는하지만 여전히 항목 사이에 약간의 공간이있다. 누구든지 나를 도울 수 있습니까?

Screenshot

+0

"fill_parent"는 "match_parent"를 사용하지 말고, LinearLayout에는 padding = 0dp가 필요하지 않습니다 (기본값은 0입니다). ListView는 match_parent의 높이를 가져야하지만 전체 XML을 보지 않고도 listview가 수행하는 작업을 알기는 어렵습니다. 효과 스크린 샷을 게시하십시오. –

+0

또한 다른 (빨강, 녹색 등) 배경색을 위젯에 추가하여 어느 것이 간격을 벗어나는지 확인하십시오. –

+0

편집을 참조하십시오, 붉은 색으로 표시된 공간은 내가 제거하고 싶은 공간입니다 – Phil

답변

9

라인 안드로이드는 : dividerHeight = "10dp는"당신의 라인 사이의 간격이 발생합니다. 나는 전체 UI를 색으로 구분 :

Color coded- no dividerHeight

좋아, 그래서 여기에 있습니다 : 나는 위의 "10dp"에서 dividerHeight 라인을 설정 "0dp"나는이있어 한 번

Color coded UI

내가 사용한 코드의 전체 세트는 어디서 잘못 읽었는지 알 수 있습니다.

MainActivity : 마지막으로 여기

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:background="@android:color/holo_orange_dark" 
    android:id="@+id/wrapper" 
    android:padding="0dp" 
    android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/comment" 
      android:background="@android:color/holo_blue_light" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:paddingLeft="10dip" 
      android:paddingRight="10dip" 
      android:text="This is a test comment" 
      android:textColor="#000000"/> 

</LinearLayout> 

activity_main.xml입니다 : 여기

package com.ds.listviewtest; 

import android.app.ListActivity; 
import android.content.Context; 
import android.database.DataSetObserver; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.ListAdapter; 
import android.widget.TextView; 

public class MainActivity extends ListActivity { 

    static final String[] FRUITS = new String[] { 
      "Apple", "Avocado", "Banana", 
      "Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit", 
      "Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple" 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     setListAdapter(new SimpleAdapter(FRUITS)); 
     setContentView(R.layout.activity_main); 
    } 

    private class SimpleAdapter implements ListAdapter 
    { 
     String[] items; 

     public SimpleAdapter(String[] items) 
     { 
      this.items = items; 
     } 

     @Override 
     public void registerDataSetObserver(DataSetObserver observer) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void unregisterDataSetObserver(DataSetObserver observer) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      return items.length; 
     } 

     @Override 
     public Object getItem(int position) { 
      // TODO Auto-generated method stub 
      return items[position]; 
     } 

     @Override 
     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      return position; 
     } 

     @Override 
     public boolean hasStableIds() { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(
        Context.LAYOUT_INFLATER_SERVICE); 
      View rowView = inflater.inflate(R.layout.list_item, parent, false); 
      TextView textView = (TextView) rowView.findViewById(R.id.comment); 
      textView.setText(items[position]); 

      return rowView; 
     } 

     @Override 
     public int getItemViewType(int position) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     @Override 
     public int getViewTypeCount() { 
      // TODO Auto-generated method stub 
      return 1; 
     } 

     @Override 
     public boolean isEmpty() { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public boolean areAllItemsEnabled() { 
      // TODO Auto-generated method stub 
      return true; 
     } 

     @Override 
     public boolean isEnabled(int position) { 
      // TODO Auto-generated method stub 
      return true; 
     } 

    } 

} 

는 list_item.xml입니다

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/holo_red_light" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:divider="@android:color/holo_green_light" 
     android:dividerHeight="0dp" /> <!-- EDIT THIS VALUE HERE TO 0DP --> 

</RelativeLayout> 
+2

그게 정확히 내가 뭘 찾고 있었는지,보세요 : 나는 이미 높이를 0dp o로 설정했습니다. O – Phil

+0

나는 내가 사용한 코드를 추가했습니다. 새로운 Android 앱을 만들고 MainActivity를 위의 코드로 대체하고 두 개의 레이아웃 XML 파일을 추가하고 위에 표시된 것을 정확히 볼 수 있어야합니다. 잘하면이 도움이됩니다. –

+0

정말 고마워요, 저를 도왔습니다. 나는 내 실수를 발견했다 – Phil

0

간단하게, 당신의 분할 높이 음의 값을 제공합니다.
예 : android:dividerHeight="-20dp"
이렇게하면 ListView 값 사이의 공백이 제거됩니다.

관련 문제