Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 列表视图中的项目不';看起来不像我的项目布局_Android_Android Layout_Listview - Fatal编程技术网

Android 列表视图中的项目不';看起来不像我的项目布局

Android 列表视图中的项目不';看起来不像我的项目布局,android,android-layout,listview,Android,Android Layout,Listview,我正在为一个新闻网站构建一个应用程序,我为每个项目创建了一个列表视图和一个布局,其中有相当多的空白,但在列表视图中所有空白都被删除。 我的意思是: 这是一个项目布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" androi

我正在为一个新闻网站构建一个应用程序,我为每个项目创建了一个
列表视图和一个布局,其中有相当多的空白,但在列表视图中所有空白都被删除。
我的意思是:
这是一个项目布局:

<?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;
    }
}
公共类ArticleAdapter扩展了ArrayAdapter{
公共ArticleAdapter(上下文上下文,int textViewResourceId){
super(上下文,textViewResourceId);
}
公共ArticleAdapter(上下文、int资源、列表项){
超级(上下文、资源、项目);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=转换视图;
如果(v==null){
拉平机vi;
vi=LayoutInflater.from(getContext());
v=vi.充气(R.布局.物品_项,空);
}
Article=(Article)getItem(位置);
TextView title=(TextView)v.findViewById(R.id.article_title);
TextView信息=(TextView)v.findViewById(R.id.article\u信息);
如果(标题!=null){
title.setText(article.getTitle());
}
如果(信息!=null){
info.setText(article.getAuthor());
}
返回v;
}
}

希望它可读,我对安卓系统开发有点陌生。

删除
android:layout\u weight=“1”
并添加正确的高度,例如
android:layout\u height=“60dp”


在线性布局中,使用wrapcontent,删除布局宽度并添加宽度SUM=1

然后在文本视图中,将高度更改为0dp,并将其添加到每个布局中(重量=0.5)


我认为这将起作用

您的手机的线性布局:

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

android:layout_height="wrap_content"

您不需要
layout\u weight

我通过更改适配器中的这一行来修复此问题

v = vi.inflate(R.layout.article_item, null); 
对于这个:

v=vi.充气(R.布局.物品_项目,父项,假)

你能看到列表中的其他项目吗?为“尺寸/abc\u文本\u大小\u标题\u材料”设置了什么?我能看到所有项目,只是它们看起来不像项目布局的预览。2个文本视图上面的所有空间都丢失了,我不知道为什么。第二张图片是该项目的android studio预览layout@Jj它是安卓studio内置的,不管怎么说,它有点像45dp,尝试将
LinearLayout
中的布局高度更改为“包装内容”
v = vi.inflate(R.layout.article_item, null);