J'ai créé un listView personnalisé avec la ligne comme suit:
<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>
Et le code listview utilisé dans mon xml principal est:
<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>
Et l'adaptateur utilisé est le suivant:
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;
}
}
Et adaptateur appelé dans l'activité principale par le code comme suit:
Adapter s = new Adapter(MainActivity.this, row);
mainlist.setAdapter(s);
mainlist.setSelection(length-1);
Mon codage fonctionne bien. Mon problème est que lorsque vous affichez listview qui est déroulable, vous faites tomber une ombre en haut et en bas de listview et je ne veux pas l'afficher. Comment puis-je enlever cette ombre?
Merci d'avance
Je suppose que vous parlez de la décoloration des bords. Pour les désactiver:
Android:fadingEdge="none"
ou
listView.setVerticalFadingEdgeEnabled(false);
METTRE À JOUR
Comme Pim Reijersen l'a souligné dans les commentaires, Android:fadingEdge
est obsolète et sera ignoré à partir de l'API de niveau 14. Veuillez utiliser:
Android:fadingEdgeLength="0dp"
Android:fadingEdgeLength
n'a pas fonctionné pour moi j'ai utilisé et bien travaillé avec Android:overScrollMode="never"
Ajoutez Android:overScrollMode="never"
à votre ScrollView
Utilisez ceci dans votre ScrollView XML:
Android:overScrollMode="never"
Vous pouvez définir "toujours", "jamais" ou "ifContentScrolls".
C'est un travail pour moi
Android:fadeScrollbars="false"
Android:fadingEdge="none"
Android:fadingEdgeLength="0dp"
Android:cacheColorHint="#00000000"
Android:overScrollMode="never"
essayez l'extrait de code ci-dessous
listView.setVerticalFadingEdgeEnabled(false);
ajoutez ceci en XML:
Android:fadingEdge="none" or Android:fadingEdgeLength="0dp"