我正在为一个新闻网站构建一个应用程序,我为每个项目创建了一个ListView
和一个布局,它有相当多的空白区域,但是在列表中查看了所有的空白区域已移除。
这就是我的意思:http://imgur.com/a/mLuuE
这是一个项目布局:
<?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 :(得分:1)
你的手机LineaerLayout:
android:layout_height="0dp"
android:layout_weight="1"
更改为:
android:layout_height="wrap_content"
您不需要layout_weight
答案 1 :(得分:0)
删除(defn fixing
"A version of fix that fits better with the unified update model: instead of multiple clauses,
additional args to the transform function are permitted. For example,
(swap! my-atom fixing map? update-in [k] inc)"
[x pred transform & args]
(if ((as-fn pred) x)
(apply (as-fn transform) x args)
x))
并添加正确的高度,例如android:layout_weight="1"
:
android:layout_height="60dp"
答案 2 :(得分:0)
在linearLayout中使用wrapcontent,擦除layout_weigth并添加weigthsum = 1
然后在textViews中将高度更改为0dp并添加到每个layout_weight = 0.5
我认为这会起作用
答案 3 :(得分:0)
我通过在适配器中更改此行来修复此问题
v = vi.inflate(R.layout.article_item, null);
到这一个:
v = vi.inflate(R.layout.article_item,parent,false);