編輯:關於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);
}
}
}
Android開發之控制攝像頭拍照
現在的手機一般都會提供相機功能,有些相機的鏡頭甚至支持1300萬以上像素,有些甚至支持獨立對焦、光學變焦這些只有單反才有的功能,甚至有些手機直接宣傳可以拍到星星。可以說手
微信好友有未讀信息怎麼生成 微信好友未讀信息生成器鏈接 微信好
你看到微信上有朋友分享好友的未讀信息嗎!其實這個可以自己生成的哦!那麼微信好友未讀消息怎麼生成?微信好友未讀信息生成器給你帶來一種新的裝逼模式,你的微信聊天
安卓架構...有什麼清晰的方式?
前言我們知道寫出有質量的軟件是復雜而且困難的:它不僅僅在於滿足所有的需求,同時也應該是健壯的、易於維護的、方便測試的、非常靈活的(能夠靈活的改變內容,如模塊加減)。清晰的
Android聯系人中添加歸屬地分組
之前重要負責收集聯系人添加歸屬地,公司這兩個智能分組;網上的實現方法很多,有說通過webserver來查詢,但是網絡這種形式不是長遠之道;畢竟服務器不是你自己的,還有