Я работаю над расположением, где я использую ListView с позициями RelativeLayout. lineitems самостоятельно не отображаются правильно.
Проблема - то, что txtVideoDuration TextView оттянут наверху позиции вместо нижней части. Из-за этого txtVideoTitle получает высоту 0. Как Вы видите в XML, txtVideoDuration, как предполагается, фиксируется к нижней части ListView.
Моя цель состоит в том, чтобы иметь расположение, напоминают учебное руководство, которое Google дал мне. Пример: http://android-developers.blogspot.com/2009/02/android-layout-tricks-1.html
Я использую Android 2.0.1. Я даже включил расположение в качестве примера с модификацией в ListView, и то же поведение происходит.
Это простые патронажные работы. Это - корневое расположение XML для действия. Содержащий ошибки код наверху является позициями в представлении списка. Кажется, что сам ListView повреждает его.
Это - Код getView, который расширяет позицию в ListView.
static class ViewHolder
{
TextView txtTitle;
ImageView imgThumbnail;
TextView txtDuration;
Uri videoLocation;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if(convertView == null)
{
LayoutInflater li = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = li.inflate(R.layout.listitem_videolineitem, null);
holder = new ViewHolder();
holder.txtDuration = (TextView) convertView.findViewById(R.id.txtVideoDuration);
holder.txtTitle = (TextView) convertView.findViewById(R.id.txtVideoTitle);
holder.imgThumbnail = (ImageView) convertView.findViewById(R.id.imgVideoThumbnail);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
VideoFile video = this.videos.get(position);
holder.txtDuration.setText(millisToTimestamp(video.videoDuration));
holder.txtTitle.setText(video.videoTitle);
// Some debugger visual code.
holder.txtDuration.setBackgroundColor(Color.GREEN);
holder.txtTitle.setBackgroundColor(Color.CYAN);
return convertView;
}
Как вы увеличиваете количество "глючных" представлений строк? Можете ли вы предоставить фрагмент кода?
Кроме того, android: direction = "vertical"
недействителен для RelativeLayout
.
Ответ на этот вопрос дан в комментарии принятого ответа. Чтобы прояснить, вот ответ:
Измените
li.inflate (R.layout.listitem_videolineitem, null);
на
li.inflate (R.layout.listitem_videolineitem, parent, ложь);