【发布时间】:2018-05-13 17:23:38
【问题描述】:
首先,我为我的业余问题道歉。我有一些数据将显示在ListView 中。问题是一切顺利,但 ListView 或 LinearLayout 的扩展不足以显示CustomListView 的所有子级;它只显示一个孩子。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/LinearLayoutDetails">
<ListView
android:id="@+id/ov_list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
这是包含ListView 和LinearLayout 的布局文件。此布局包含在另一个LinearLayout 和layout_height="match_parent" 中。还有风格:
<style name="LinearLayoutDetails">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginLeft">15dp</item>
<item name="android:layout_marginRight">15dp</item>
<item name="android:gravity">right</item>
<item name="android:orientation">vertical</item>
</style>
<style name="SubtitleTextView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:textColor">@color/textSecondary</item>
</style>
<style name="ValueTextView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
<item name="android:textColor">@color/textSecondary</item>
<item name="android:layout_alignParentLeft">true</item>
</style>
<style name="ViewLine">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">0.75dp</item>
<item name="android:focusable">false</item>
<item name="android:focusableInTouchMode">false</item>
<item name="android:background">#BDBDBD</item>
</style>
列表项视图xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/name"
style="@style/SubtitleTextView"
android:layout_weight="0.5"
android:gravity="left" />
<TextView
android:id="@+id/value"
style="@style/ValueTextView"
android:layout_weight="0.5"
android:gravity="right" />
</LinearLayout>
<View style="@style/ViewLine" />
</LinearLayout>
和适配器:
package ir.noideaw.aufbau.Adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.lang.reflect.Array;
import java.util.ArrayList;
import ir.noideaw.aufbau.Model.Unit;
import ir.noideaw.aufbau.R;
/**
* Created by muhammad on 5/8/18.
*/
public class UnitAdapter extends BaseAdapter {
private Context context;
private ArrayList<Unit> data;
private LayoutInflater inflater;
public UnitAdapter(Context context, ArrayList<Unit> data) {
this.context = context;
this.data = data;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public static class ViewHolder{
TextView name, value;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v = view;
ViewHolder viewHolder = new ViewHolder();
if (v == null){
v = inflater.inflate(R.layout.unit_detail, null);
viewHolder.name = v.findViewById(R.id.name);
viewHolder.value = v.findViewById(R.id.value);
v.setTag(viewHolder);
} else
viewHolder = (ViewHolder) view.getTag();
if (data.size() > 0){
Unit values = data.get(i);
viewHolder.name.setText(values.getName());
viewHolder.value.setText(values.getValue());
}
return v;
}
}
当我手动设置 ListView 或 LinearLayout 的高度时,Listview 会显示更多子项以适应该高度。 我也访问了许多网页(如this)来解决这个问题,但没有人回应。告诉我是否需要更多数据。谢谢??????
【问题讨论】:
-
您的适配器代码在哪里。添加有问题的相关代码
-
请显示列表项布局文件!!
-
@ADM 刚刚添加
-
@RishabhSharma 刚刚更新
标签: android android-layout listview android-linearlayout