Ich habe eine Auftragskarte mit einer Listenansicht erstellt. Anfangs habe ich nur 2 Einträge in der Listenansicht angezeigt, aber auf Klick auf die Pfeilschaltfläche möchte ich die vollständige Listenansicht anzeigen und danach, wenn ich noch einmal auf den Pfeil klicke, möchte ich nur 2 Einträge anzeigen. Ich bin in der Lage, vollständige Liste zu zeigen, aber danach nicht in der Lage, es auf 100 dp wieder zu minimieren, die ich in XML-Datei früher habe.So begrenzen Sie die ListView-Höhe auf Knopfdruck
Unten ist mein Code, wo ich Taste und eine andere Adapter Höhe halten für sie: -:
viewHolder.listview.setAdapter(new MenuAdapterForAll(mContext,menuModels)); setListViewHeightBasedOnChildren(viewHolder.listview);
Boolean isexpand= false
viewHolder.showhide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isexpand == true)
{
setListViewHeightBasedOnChildren(viewHolder.menulist);
}
else
{
setListViewHeightBasedOnChildren(100);
}
}
Und für Listview ich ein anderer Adapter dh menuadapter bin Einstellung // Code für diesen Menüadapter
public class MenuAdapterForAll extends BaseAdapter
{
ArrayList<MenuItemModel> dataSet1;
Context mContextnew;
Typeface face, face1;
// View lookup cache
private static class ViewHolder {
ImageView image_menu_type;
TextView menu_item_name;
TextView menu_item_price;
TextView menu_item_qty;
CheckBox cbmenu;
}
public MenuAdapterForAll(Context applicationContext, ArrayList<MenuItemModel> menuModels) {
this.dataSet1=menuModels;
this.mContextnew=applicationContext;
}
@Override
public int getCount() {
return 2;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public int getItemViewType(int position) {
return position;
}
private int lastPosition = -1;
@Override
public View getView(int position, View vv, ViewGroup parent) {
// View vv= LayoutInflater.from(mContextnew).inflate(R.layout.adapter_listview_menuitems, null, false);
final ViewHolder viewHolder; // view lookup cache stored in tag
final View result;
final MenuItemModel data=dataSet1.get(position);
face = Typeface.createFromAsset(mContextnew.getAssets(), "fonts/Nunito-Regular.ttf");
face1 = Typeface.createFromAsset(mContextnew.getAssets(), "fonts/Rupee_Foradian_2.ttf");
if (vv == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(mContextnew);
vv = inflater.inflate(R.layout.adapter_listview_menuitems, parent, false);
viewHolder.menu_item_name=(TextView)vv.findViewById(R.id.menu_item_name);
viewHolder.menu_item_price=(TextView)vv.findViewById(R.id.menu_item_price);
viewHolder.menu_item_qty=(TextView)vv.findViewById(R.id.menu_item_qty);
viewHolder.image_menu_type =(ImageView) vv.findViewById(R.id.image_menu_type);
viewHolder.cbmenu =(CheckBox) vv.findViewById(R.id.cbmenu);
result=vv;
vv.setTag(viewHolder);
}
** Ich bin nicht in der Lage, Höhe wieder auf 100 dp in sonst Teil zu setzen. **
Unfähig zu verfolgen, was das Problem sein könnte, wäre jede Hilfe wirklich sehr wertvoll.
- Vielen Dank!
Haben Sie das Layout params versucht? – Rahul
Ich habe versucht, aber Fehler bekommen. Können Sie mir bitte helfen, es ist wirklich dringend @Rasi –
Einfache Möglichkeit ist, zwei verschiedene Liste zu haben. einer wird nur zwei Gegenstände haben und der zweite wird alle Gegenstände haben. Beim Klicken können Sie den Listen- und Aktualisierungsadapter ändern, indem Sie notifyDataSetChanged aufrufen. – Piyush