Ich versuche, alle untergeordneten Ansichten eines linearen Layouts zu entfernen, aber nichts ist entfernt, die seltsame Sache ist der gleiche Code funktioniert in einer anderen Anwendung. Hier ist der Beispielcode der Methode, die die choiceHolder bevölkern, wenn ein Tab darin ausgewählt (ich alle Ansicht entfernen und die ausgewählten markieren und füllen auf das stützen.RemoveAllViews nicht Ansichten entfernen
/** a method to fill the upper bar where we choose the {@link CategoriesMyBox}
* @param category
*/
private void fillNavigationBar(CategoriesGetter category) {
TextView categoryTxt = new TextView(getActivity());
// categoryTxt.setAllCaps(true);
LinearLayout.LayoutParams txtParams;
if (category.isSelected() /*|| (category.getId_categorie()==0 && allselected)*/) {
txtParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
txtParams.gravity = Gravity.CENTER;
categoryTxt.setGravity(Gravity.CENTER);
categoryTxt.setTextSize(categoryTxt.getTextSize());
txtParams.setMargins(10, 0, 10, 0);
categoryTxt.setPadding(5, 5, 5, 5);
if (category.getId_categorie() == 0) {
categoryTxt.setText(getResources().getString(R.string.all_boxs));
}else {
categoryTxt.setText(category.getName_categorie());
}
categoryTxt.setTextColor(Color.GREEN);
categoryTxt.setBackgroundDrawable(getResources().getDrawable(R.drawable.back_categories_selected));
// categoryTxt.setBackgroundColor(Color.parseColor("#E3E8E6"));
categoryTxt.setTag(category);
}else {
txtParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
txtParams.setMargins(10, 0, 10, 0);
categoryTxt.setGravity(Gravity.CENTER);
categoryTxt.setPadding(5, 5, 5, 5);
txtParams.gravity = Gravity.CENTER;
if (category.getId_categorie() == 0) {
categoryTxt.setText(getResources().getString(R.string.all_boxs));
}else {
categoryTxt.setText((category.getName_categorie()));
}
categoryTxt.setTextColor(Color.GRAY);
categoryTxt.setBackgroundDrawable(getResources().getDrawable(R.drawable.back_categories));
// categoryTxt.setBackgroundColor(Color.parseColor("#777777"));
categoryTxt.setTag(category);
}
choiceHolder.addView(categoryTxt, txtParams);
categoryTxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
CategoriesGetter cat = (CategoriesGetter)v.getTag();
id_cat = cat.getId_categorie();
for (int i = 0; i < categories.size(); i++) {
categories.get(i).setSelected(false);
}
cat.setSelected(true);
// choiceHolder.removeAllViews();
/*for(int i=0; i<((ViewGroup)choiceHolder).getChildCount(); ++i) {
View nextChild = ((ViewGroup)choiceHolder).getChildAt(i);
choiceHolder.removeView(nextChild);
}*/
while (((ViewGroup)choiceHolder).getChildCount() >0) {
View nextChild = ((ViewGroup)choiceHolder).getChildAt(0);
choiceHolder.removeView(nextChild);
}
// choiceHolder.removeAllViewsInLayout();
for (int i = 0; i < categories.size(); i++) {
fillNavigationBar(categories.get(i));
}
callbackCategory.selectCategory(cat.getId_categorie());
}
});
}
choiceHolder ist ein LinearLayout
und hier ist ein Bild, um die Probleme zeigt.
Nun meine Anwendung wird auf die gleiche Art und Weise verhalten, auch wenn die Aktualisierung der Liste innerhalb ich kann immer noch die Liste sehen, die zuvor
Sie müssen viel mehr Code posten, im Moment kann man nur raten, was Sie falsch machen: Vergessen Sie vielleicht, die unerwünschten Elemente aus der 'categories' Liste zu entfernen? –
es ist nicht nur ein Problem in der Liste, aber in jeder Komponente wie der Preisklasse ist eine Bibliothek, die funktioniert gut in vielen meiner Anwendungen, aber hier sehen Sie die visuelle links dahinter ist es wie ein Stapel von Bildern, auch wenn ich ein Fragment in ersetzen ein Rahmen Ich kann immer noch das vorherige Fragment in der Rückseite sehen. –
SHOW XML UND MEHR CODES – keshav