編輯:關於Android編程
最近,項目中遇到一個問題,就是列表顯示的嵌套,外面是一個RecyclerView列表,而其中一個單項竟然也是列表,產品設計的是否規范暫且不論,先想辦法實現吧,本以為這樣嵌套很難實現,結果寫下來也不過如此,雖然寫的時候內心很刺激。
方法:按照正常實現就可,那個單項布局裡放一個RecyclerView,在holder裡find到它,然後在給它接上一個適配器,也就是在外層列表Adapter中,再給它的單項子控件配一個Adapter,就問你刺激不???廢話少說,上代碼,客官請看…….
public class ContractDeatilAdapter extends RecyclerView.Adapter{ private static final int TYPE_SIMPLE = 1;//普通簡易布局,只有兩個textview private static final int TYPE_INSTALMENT = 2;//分期付款的布局 private Context mContext; private List valueList; private List keyList; private List payStagesList; public ContractDeatilAdapter(Context mContext, List valueList, List keyList, List payStagesList) { this.mContext = mContext; this.valueList = valueList; this.keyList = keyList; this.payStagesList = payStagesList; } @Override public ContractDetailHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_contract_detail_instalment, parent, false); return new ContractInstalmentHolder(itemView); } @Override public int getItemCount() { if (valueList != null && payStagesList != null) { return valueList.size() + payStagesList.size(); } return 0; } @Override public void onBindViewHolder(ContractDetailHolder holder, int position) { ContractInstalmentHolder instalmentHolder = (ContractInstalmentHolder) holder; int stagePosition = position - valueList.size(); StagePayDetailAdapter mRefundAdapter = new StagePayDetailAdapter(mContext, payStagesList.get(stagePosition).getRentpactpaylists()); ((ContractInstalmentHolder) holder).rvRefundDetail.setLayoutManager(new LinearLayoutManager(mContext){ @Override public boolean canScrollVertically() { return false; } }); ((ContractInstalmentHolder) holder).rvRefundDetail.setAdapter(mRefundAdapter); } } class ContractDetailHolder extends RecyclerView.ViewHolder { public ContractDetailHolder(View itemView) { super(itemView); } } /** * 分期付款詳情 的holder */ class ContractInstalmentHolder extends ContractDetailHolder { TextView tvGrade; LinearLayout layoutTitle; TextView tvPay, tvBeginDate, tvPayDate, tvOverDate; RecyclerView rvRefundDetail; TextView tvMemo; public ContractInstalmentHolder(View itemView) { super(itemView); layoutTitle = (LinearLayout) itemView.findViewById(R.id.layout_title); tvGrade = (TextView) itemView.findViewById(R.id.tv_grade); tvPay = (TextView) itemView.findViewById(R.id.tv_pay); tvBeginDate = (TextView) itemView.findViewById(R.id.tv_begindate); tvPayDate = (TextView) itemView.findViewById(R.id.tv_paydate); tvOverDate = (TextView) itemView.findViewById(R.id.tv_overdate); rvRefundDetail = (RecyclerView) itemView.findViewById(R.id.rv_refunddetail); tvMemo = (TextView) itemView.findViewById(R.id.tv_memo); } } }
現在的手機一般都會提供相機功能,有些相機的鏡頭甚至支持1300萬以上像素,有些甚至支持獨立對焦、光學變焦這些只有單反才有的功能,甚至有些手機直接宣傳可以拍到星星。可以說手
你看到微信上有朋友分享好友的未讀信息嗎!其實這個可以自己生成的哦!那麼微信好友未讀消息怎麼生成?微信好友未讀信息生成器給你帶來一種新的裝逼模式,你的微信聊天
前言我們知道寫出有質量的軟件是復雜而且困難的:它不僅僅在於滿足所有的需求,同時也應該是健壯的、易於維護的、方便測試的、非常靈活的(能夠靈活的改變內容,如模塊加減)。清晰的
之前重要負責收集聯系人添加歸屬地,公司這兩個智能分組;網上的實現方法很多,有說通過webserver來查詢,但是網絡這種形式不是長遠之道;畢竟服務器不是你自己的,還有