Как добавить расширяемую карту в другую расширяемую карту?

Я работаю над проектом, в котором мне нужно показать пользователю только основную информацию, и, если он захочет увидеть больше, он может нажать на карту, и карта расширения развернется. Эта функциональность была достигнута с помощью "addCardExpand".

Однако теперь я хочу добавить еще одну карту расширения к этой карте расширения, которая должна быть раскрыта, т. Е. Быть видимой, когда я нажимаю на предыдущую карту расширения. Таким образом, в основном, 2-х уровневый механизм карт расширения.

Карта расширения не реализует функцию addCardHeader и, следовательно, добавление того же самого оказалось проблемой. Кто-нибудь может дать мне несколько советов о том, как поступить?

card[i] = new Card(activity);


//Create a CardHeader
 header[i] = new CardHeader(activity);
 int j = 0;
 header[i].setId(String.valueOf(i+1000));

 header[i].setTitle(s); //Set the header title

//Add Header to card
 card[i].addCardHeader(header[i]);
 final int finalI = i;
 final int finalI1 = i;

 card[i].setShadow(true);

 CustomCardExpand expand = new CustomCardExpand(activity,i,curTab);

/* Code block where I am trying to add the second expandable card */

 CardViewNative chart_card = new CardViewNative(activity);
 Card chart_expand = new Card(activity);
 CardHeader chart_header = new CardHeader(activity);
 chart_header.setTitle("Click to view chart");
 chart_header.setButtonExpandVisible(true);
 CustomInnerCardExpand chart = new CustomInnerCardExpand(activity);
 CustomCardExpand chart = new CustomCardExpand(activity,i,curTab);
 chart_expand.addCardExpand(chart);
 chart_expand.addCardHeader(chart_header);
 ViewToClickToExpand viewToClickToExpand1 =
                ViewToClickToExpand.builder()
                                   .setupView(chart_card);
 chart_expand.setViewToClickToExpand(viewToClickToExpand1);
 chart_card.setCard(chart_expand);
 expand.setCardView(chart_card);
/* Code Block ends */

 card[i].addCardExpand(expand); //Adding the first card expand

 cardExpands[i] = new CardViewNative(activity);
 ViewToClickToExpand viewToClickToExpand =
                ViewToClickToExpand.builder()
                             .setupView(cardExpands[i]).highlightView(false);

 card[i].setViewToClickToExpand(viewToClickToExpand);
 cardExpands[i].setCard(card[i]);

 cardExpands[i].setCardElevation(activity.getResources().getDimension(R.dimen.carddemo_shadow_elevation));
 cardExpands[i].setCardBackgroundColor(R.color.card_background);
 cardExpands[i].setBottom(R.color.card_background);
 cardExpands[i].setRadius(R.dimen.card_background_default_radius);
 cards_ll.addView(cardExpands[i]);

Это класс CustomCardExpand:

public class CustomCardExpand extends CardExpand {
    private Context mContext;
     public static TextView[] tx;
     public static TextView filter;
     public static int MYCODE = 200;
     int j;
     public static String tabName;
     public static ArrayList<String> pageDimensions;

     public CustomCardExpand(Context context, int i,String tableName) {
         super(context, R.layout.card_inner_layout);
         mContext = context;
         j=i;
         tabName = tableName;
         MobiReportHolderSmallDeviceAdapter.tableHeaderMap.put(Integer.toString(j), tabName);
     }

     @Override
     public void setupInnerViewElements(ViewGroup parent, View view) {
         //...Populated with some textviews wrapped in a horizontal scrollview
     }
 }

А класс CustomInnerCard - это отдельный класс для второй расширяемой карты: (я хочу, чтобы две выпадающие карты имели 2 разных внутренних макета)

0 ответов

Другие вопросы по тегам