android - 从android中ListView的顶部和底部删除阴影?

标签 android listview

我创建了一个自定义 ListView ,其行如下:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"  android:id="@+id/lay1" 
  android:layout_height="wrap_content" android:background="#ffffff">

  <TextView android:layout_width="fill_parent" android:textColor="#000000" android:id="@+id/text"
  android:layout_height="wrap_content" android:layout_toRightOf="@+id/check" 
  android:textSize="15dip" android:paddingBottom="5dip" android:paddingRight="10dip" android:paddingLeft="10dip"></TextView>

  <Button android:id="@+id/check"  android:layout_centerVertical="true"
          android:background="@drawable/uncheck" android:layout_width="wrap_content"
          android:layout_height="wrap_content" android:visibility="gone"></Button>

  <EditText android:layout_width="fill_parent" android:textColor="#000000" android:id="@+id/edit"
  android:layout_height="wrap_content"  android:background="@null" android:layout_below="@+id/text"
  android:textSize="15dip" android:paddingTop="5dip" android:paddingRight="10dip" android:paddingLeft="10dip"
  android:layout_toRightOf="@+id/check" android:paddingBottom="5dip" ></EditText>

</RelativeLayout>

我的主要 xml 中使用的 listview 代码是:

<ListView android:layout_width="450dip" android:background="#FFFFFF" android:layout_height="340dip" 
  android:layout_marginLeft="9dip" android:layout_marginTop="10dip"  android:id="@+id/mainlist1" 
  android:divider="@drawable/grayline" 
    android:cacheColorHint="#00000000" ></ListView>

使用的适配器如下:

public class Adapter extends BaseAdapter {


        ArrayList<Row> row;
        private Context context;


        public Adapter(Context context, ArrayList<SongRow> songrow) {

            this.context = context;
            this.row = row;

        }

        public int getCount() {

            return row.size();
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {

            long sub_id = row.get(position).getSub_id();
            String sub_title = row.get(position).getSub_title();
            String sub_text = row.get(position).getSub_text();

            if (convertView == null) {
                LayoutInflater inflat = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = inflat.inflate(R.layout.mainrow, null);

            } else {
                LayoutInflater inflat1 = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = inflat1.inflate(R.layout.mainrow, null);
                            }
            final TextView name = (TextView) convertView.findViewById(R.id.text);
            final EditText et = (EditText) convertView.findViewById(R.id.edit);
            name.setText(sub_title);
            et.setText(sub_text);
            et.setFilters(new InputFilter[] { new InputFilter() {
                public CharSequence filter(CharSequence src, int start,
                        int end, Spanned dst, int dstart, int dend) {
                       InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                       mgr.hideSoftInputFromWindow(et.getWindowToken(),0);
                       et.setCursorVisible(false);
                       return dst.subSequence(dstart, dend);    

                }
            } });
            et.setOnFocusChangeListener(new OnFocusChangeListener() {

                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    // TODO Auto-generated method stub
                    if (hasFocus) {
                         InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                         mgr.hideSoftInputFromWindow(et.getWindowToken(),0);
                         et.setCursorVisible(false);
                    }
                }

            });
            et.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                     InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                     mgr.hideSoftInputFromWindow(et.getWindowToken(),0);
                     et.setCursorVisible(false);

                }
            });
            return convertView;
        }
    }

并通过代码在main activity中调用adapter,如下:

Adapter s = new Adapter(MainActivity.this, row);
            mainlist.setAdapter(s);
            mainlist.setSelection(length-1);

我的编码工作正常。我的问题是,在显示可滚动的 ListView 时,会在 ListView 的顶部和底部投下阴影,我不想显示它。我怎样才能消除那个阴影?

提前致谢

最佳答案

我假设您在谈论褪色边缘。要禁用它们:

android:fadingEdge="none"

listView.setVerticalFadingEdgeEnabled(false);

更新

正如 Pim Reijersen 在评论中指出的那样,android:fadingEdge 已被弃用,自 API 级别 14 起将被忽略。请使用:

android:fadingEdgeLength="0dp"

关于android - 从android中ListView的顶部和底部删除阴影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106692/

相关文章:

android - AngularJS 2 和 Cordova : "Failed to load resource: net::ERR_FILE_NOT_FOUND"

android - 是否可以更改android单选按钮组中的单选按钮图标

android - IntentService 工作队列状态

android - 摆脱具有每个项目背景的 ListView 中的 overdraw

image - 在 React Native 中为图像添加填充?

react-native - React Native Flatlist numColumns 没有制作多列

android - Sinch SDK - 如何注销用户?

android - IDE 编辑/修改 Android 源代码中的原生 C/C++ 文件

android - 在其他Activity中更新数据库后如何更新Activity中的ListView?

java - 如何将 Android Wifi 扫描结果添加到列表中?