Android-仅显示一行的列表视图
我在ListView中遇到了一个问题,它在ListView中只显示一行。我认为问题出在布局行xml中,但我不知道问题出在哪里。谢谢你的帮助,我很感激 这是my row.xmlAndroid-仅显示一行的列表视图,android,android-layout,android-linearlayout,Android,Android Layout,Android Linearlayout,我在ListView中遇到了一个问题,它在ListView中只显示一行。我认为问题出在布局行xml中,但我不知道问题出在哪里。谢谢你的帮助,我很感激 这是my row.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/fondgris"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageTypeWorkitem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:paddingTop="10dp"
android:src="@drawable/bugicon" />
<TextView
android:id="@+id/typeWorkitem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:paddingTop="10dp"
android:textSize="14sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/imagePriority"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:paddingTop="10dp"
android:src="@drawable/priorityhigh" />
<TextView
android:id="@+id/priority"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:paddingTop="10dp"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/key"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:paddingTop="10dp"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:paddingTop="10dp"
android:src="@drawable/statusopen" />
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/priority"
android:layout_marginLeft="10dp"
android:paddingTop="10dp"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
RelativeLayout
设计单行线性布局
。您正在使用如此多的线性布局来设计一个简单的行。这可能会影响UI的性能ListView
并设置了适配器的代码,我将说很多。祝你好运
您可以尝试使用RelativeLayout
设计单行
去掉最外层的线性布局
。您正在使用如此多的线性布局来设计一个简单的行。这可能会影响UI的性能
在Rest中,如果不查看正在实例化ListView
并设置了适配器的代码,我将说很多。祝你好运。我认为问题在于你的列表视图高度
将listview高度设置为匹配父级我认为问题在于您的listview高度
将listview高度设置为match_parent而不是使用LinearLayout您可以使用相对布局问题是什么?是否只显示一行是问题所在?在呈现列表视图的数组中是否有多个项目?是的,列表包含多个项目,但它只显示一个项目只有第一个项目您可以粘贴适配器类并对加载列表的位置进行编码。谢谢,我更新了我的问题。您可以使用相对布局而不是线性布局。问题是什么?是否只显示一行是问题所在?在呈现列表视图的数组中是否有多个项?是的,列表包含多个项,但仅显示一个项只有第一个项您可以粘贴适配器类并在加载列表的位置编写代码。谢谢我更新了我的问题。谢谢,我尝试使用relativeLayout,但顺序没有很好地呈现,这就是为什么我尝试了线性布局,它允许我以我想要的方式呈现视图。当我将RelativeLayout与相同的源代码一起使用时,它可以工作,并显示ListView,但视图没有很好地显示出来。我真的被卡住了:(你试过滚动列表视图吗?可能是因为列表视图的高度较小,所以项目没有显示。尝试使用android:layout\u height=“fill\u parent”定义ListView的位置。另一种检查方法是在适配器类中使用Log.d来确定数据。我尝试了ScrollView,但没有解决问题,如果您想查看适配器,我更新了我的问题。谢谢。我曾经做过类似的操作,并使用BaseAdapter而不是ArrayAdapter。但是您的代码对我来说似乎没问题。我uess您只需要设置ListView的高度。当我告诉您滚动ListView时,我并不是要使用ScrollView。我只是想让您将光标向下拖动到ListView上,因为它已经可以滚动。如果它可以使用RelativeLayout而不是LinearLayout,请尝试将最外层的LinearLayout高度更改为wrap_内容为@Oren回答。我尝试将最外层的线性布局高度更改为包裹内容,但没有帮助:(谢谢,我尝试使用relativeLayout,但顺序显示得不太好,这就是为什么我尝试使用LinearLayout,它允许我以我想要的方式显示视图。当我使用relativeLayout时,它与相同的源代码一起工作,并显示ListView,但视图显示得不好。我真的被卡住了:(您是否尝试滚动ListView?可能是因为ListView的高度较小,所以项目未显示。请尝试使用android:layout\u height=“fill\u parent”定义ListView的位置。另一种检查方法是在适配器类中使用Log.d来确定数据。我尝试了ScrollView,但没有解决问题,如果您想查看适配器,我更新了我的问题。谢谢。我曾经做过类似的操作,并使用BaseAdapter而不是ArrayAdapter。但是您的代码对我来说似乎没问题。我uess您只需要设置ListView的高度。当我告诉您滚动ListView时,我并不是要使用ScrollView。我只是想让您将光标向下拖动到ListView上,因为它已经可以滚动。如果它可以使用RelativeLayout而不是LinearLayout,请尝试将最外层的LinearLayout高度更改为wrap_内容为@Oren回答。我尝试将最外层的线性布局高度更改为包裹内容,但没有帮助:(
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.client.alm.model.WorkItem;
import com.client.alm.model.WorkItemContainer;
public class WorkItemAdapter extends ArrayAdapter<WorkItem> {
private WorkItemContainer container;
private Context context;
int layoutResourceId;
public WorkItemAdapter(Context context, int layoutResourceId,
WorkItemContainer container) {
super(context, layoutResourceId, container.getWorkitems());
this.layoutResourceId = layoutResourceId;
this.context = context;
this.container = container;
}
static class ViewHolder {
ImageView imageType;
TextView type;
TextView priority;
ImageView imagePriority;
TextView key;
ImageView imageStatus;
TextView status;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if (row == null) {
LayoutInflater inflater = LayoutInflater.from(context);
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.imageType = (ImageView) row
.findViewById(R.id.imageTypeWorkitem);
holder.type = (TextView) row.findViewById(R.id.typeWorkitem);
holder.imagePriority = (ImageView) row
.findViewById(R.id.imagePriority);
holder.priority=(TextView) row.findViewById(R.id.priority);
holder.key = (TextView) row.findViewById(R.id.key);
holder.imageStatus = (ImageView) row.findViewById(R.id.imageStatus);
holder.status = (TextView) row.findViewById(R.id.status);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
WorkItem workitem = container.getWorkitems().get(position);
holder.type.setText(workitem.getType());
// holder.imageType.setImageResource(workitem.getIcon());
holder.priority.setText(workitem.getPriority());
holder.key.setText(workitem.getKey());
holder.status.setText(workitem.getStatus());
return row;
}
}
WorkItemContainer container = gson.fromJson(resultat,
WorkItemContainer.class);
/**
* Updating parsed JSON data into ListView
* */
WorkItemAdapter adaptateur = new WorkItemAdapter(
WorkItemActivity.this, R.layout.ligne_workitem, container);
setListAdapter(adaptateur);