【发布时间】:2014-10-08 14:03:33
【问题描述】:
大家好,当我向下滚动列表视图时,我正在使用带有 LayoutInflater 的 listView,但当我向上滚动它时,它开始重叠。
实际上,一旦第一行离开屏幕,就会出现问题。
这是Java代码
public class VehicleActivity extends Activity
{
static ListView listView;
public int context_menu_index;
public void onCreate(Bundle savedInstanceState)
{
//Some Code
listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(new EfficientAdapter(this));
}
private class EfficientAdapter extends BaseAdapter
{
private LayoutInflater mInflater;
private TextView text1, text2, text3;
private View listItem;
private ImageView img_option;
//Some Code
public View getView(final int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
listItem = mInflater.inflate(R.layout.three_col_row, null);
text1 = (TextView) listItem.findViewById(R.id.imei);
text2 = (TextView) listItem.findViewById(R.id.status);
text3 = (TextView) listItem.findViewById(R.id.location);
img_option = (ImageView) listItem.findViewById(R.id.img_arrow);
img_option.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
VehicleActivity.this.registerForContextMenu(listView); VehicleActivity.this.openContextMenu(listView);
context_menu_index = position;
}
})
img_option.setFocusable(true);
img_option.setClickable(true);
img_option.setTag(getItem(position));
//Setting The Font Style
text1.setTypeface(null, Typeface.BOLD);
text2.setTypeface(null, Typeface.ITALIC);
//Passing The Actual Values To TextViews
text1.setText("ID: " +VehicleList.IMEI[position]);
text2.setText("Status: " +VehicleList.Status[position]);
text3.setText("Location: " +VehicleList.Location[position]);
listItem.setBackgroundColor(position % 2 == 0 ? Color.parseColor("#eaeaea") : Color.parseColor("#d3e3f3"));
}
return listItem;
}
} }
这是具有 ListView 的 Activity 布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:showAsAction="always"
android:background="#0066FF" >
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="false"
android:cacheColorHint="#00000000"
android:dividerHeight="1dp"
android:scrollbars="none">
</ListView>
</LinearLayout>
这是我传递给 listView 的布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_main"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:padding="4dp">
<LinearLayout
android:id="@+id/child_lay1"
android:layout_height="wrap_content"
android:layout_width="320dp"
android:orientation="vertical"
android:gravity="start">
<TextView
android:id="@+id/imei"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_marginLeft="10dp"
android:textSize="15sp"
android:textStyle="bold"
android:textColor="#000000"/>
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_marginLeft="10dp"
android:textSize="15sp"
android:textStyle="bold"
android:textColor="#000000"/>
<TextView
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_marginLeft="10dp"
android:textSize="15sp"
android:textColor="#000000"/>
</LinearLayout> <!-- Child Vertical Linear Layout -->
<LinearLayout
android:id="@+id/child_lay2"
android:layout_height="30dp"
android:layout_width="30dp"
android:orientation="vertical"
android:gravity="end">
<ImageView
android:id="@+id/img_arrow"
android:src="@drawable/arrow"
android:layout_width="30dp"
android:layout_height="30dp"/>
</LinearLayout>
</LinearLayout>
【问题讨论】:
-
请上传你的java源码......
-
请检查代码@Rajatsharma