2016-09-03 53 views
1

我正在爲新聞網站構建應用程序,我創建了一個ListView和每個項目的佈局,這些項目有相當多的空白區域,但在列表視圖中的所有空白都被刪除。 這裏是我的意思是:http://imgur.com/a/mLuuE 這是一個項目的佈局:Listview中的項目看起來不像我的項目佈局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="175dp" 
    android:gravity="center" 
    android:layout_weight="0" 
    android:id="@+id/article_layout" 
    android:background="@drawable/gradientdemo"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:gravity="center|bottom" 
     android:orientation="vertical" 
     android:paddingLeft="16dp"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textStyle="bold" 
      android:text="Titolo dell'articolo" 
      android:textSize="@dimen/abc_text_size_headline_material" 
      android:layout_gravity="left" 
      android:id="@+id/article_title" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="8dp" 
      android:text="3/9/16 - Autore" 
      android:layout_gravity="left" 
      android:id="@+id/article_info" /> 
    </LinearLayout> 
</LinearLayout> 

這是我的自定義適配器:

public class ArticleAdapter extends ArrayAdapter<Article> { 

    public ArticleAdapter(Context context, int textViewResourceId){ 
     super(context, textViewResourceId); 
    } 

    public ArticleAdapter(Context context, int resource, List<Article> items){ 
     super(context, resource, items); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
     View v = convertView; 
     if (v == null) { 
      LayoutInflater vi; 
      vi = LayoutInflater.from(getContext()); 
      v = vi.inflate(R.layout.article_item, null); 
     } 

     Article article = (Article) getItem(position); 

     TextView title = (TextView) v.findViewById(R.id.article_title); 
     TextView info = (TextView) v.findViewById(R.id.article_info); 

     if(title != null) { 
      title.setText(article.getTitle()); 
     } 
     if(info != null) { 
      info.setText(article.getAuthor()); 
     } 

     return v; 
    } 
} 

希望這是可讀的,我有點新的Android開發。

+0

你能看到列表中的其他項目嗎? –

+0

「dimen/abc_text_size_headline_material」設置了什麼? –

+0

我可以看到所有項目,只是它們看起來不像項目佈局的預覽。 2個文本視圖之上的所有空間都已丟失,我不知道爲什麼。第二個圖像是項目佈局的Android Studio預覽 –

回答

0

我在適配器

v = vi.inflate(R.layout.article_item, null); 

改變這一行這一個固定的:
V = vi.inflate( R.layout.article_item,parent,false);

0

刪除android:layout_weight="1"並添加正確的高度,例如, android:layout_height="60dp"

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    android:gravity="center|bottom" 
    android:orientation="vertical" 
    android:paddingLeft="16dp"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textStyle="bold" 
     android:text="Titolo dell'articolo" 
     android:textSize="@dimen/abc_text_size_headline_material" 
     android:layout_gravity="left" 
     android:id="@+id/article_title" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp" 
     android:text="3/9/16 - Autore" 
     android:layout_gravity="left" 
     android:id="@+id/article_info" /> 
</LinearLayout> 
0
在LinearLayout中使用wrapcontent

,擦除layout_weigth並添加weigthsum = 1 textViews變化高度0dp

然後並添加到每一個layout_weight = 0.5

我認爲這將工作

1

您單元的LineaerLayout:

android:layout_height="0dp" 
android:layout_weight="1" 

變化:

android:layout_height="wrap_content" 

你不需要layout_weight

相關問題