ユーザーに基本情報のみを表示する必要があるプロジェクトに取り組んでおり、ユーザーがさらに表示することを選択した場合、カードをタップすると展開カードがドロップダウンします。この機能は、「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 番目の拡張可能なカード用の別のクラスです: (ドロップ ダウンする 2 つのカードに 2 つの異なる内部レイアウトを持たせたい)