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);