내가했습니다 : 당신이 CardScrollView
를 사용하는 경우
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.my_custom_layout);
}
, 단순히 View
당신을 반환 할 CardScrollAdapter
의 getView
방법을 수정 이 문제가 나 자신에게있어서 매우 쉽게 해결할 수있었습니다. 너무 많은 설명서가 없으므로 실망 스럽습니다.
Card 클래스가 사용되지 않으며 CardBuilder.EMBED_INSIDE가 상당히 제한적이므로. 당신이 가지고있는 유일한 옵션은 앞서 언급 한 것처럼 사용자 정의보기를 사용하는 것입니다. 그러나 수동으로 팽창시킬 필요는 없습니다! 사용하는 경우 CardScrollView 및 CardScrollAdapter를 사용하고 있습니다. 당신은 당신의 활동에 다음과 같은 작업을 수행 할 수 있습니다
public class MainCardsScrollAdapter extends CardScrollAdapter
{
ArrayList<View> _cardsList;
public MainCardsScrollAdapter(ArrayList<View> cardsList)
{
_cardsList = cardsList;
}
@Override
public int getCount() {
return _cardsList.size();
}
@Override
public Object getItem(int i) {
return _cardsList.get(i);
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
return _cardsList.get(i);
}
@Override
public int getPosition(Object o) {
return _cardsList.indexOf(o);
}
@Override
public int getViewTypeCount() {
return CardBuilder.getViewTypeCount();
}
@Override
public int getItemViewType(int position){
return 0;//should be changed, it's just an example
}
}
지금 단순히 당신이 XML에서 원하는 레이아웃을 생성 : 지금은 대신 CardBuilders의 전망을 가지고 있기 때문에
private CardScrollView _cardScroller;
private ArrayList<View> _cardsList;
private MyCustomView _myView;
@Override
protected void onCreate(Bundle bundle) {
_cardsList = new ArrayList<View>();
_myView= new MyCustomView (this);
_cardsList.add(_myView);
_cardScroller = new CardScrollView(this) ;
MainCardsScrollAdapter adapter = new MainCardsScrollAdapter(_cardsList);
_cardScroller.setAdapter(adapter);
_cardScroller.activate();
setContentView(_cardScroller);
}
가 지금은 사용자 정의 CardScrollAdapter을 사용했다. 그리고 사용자 정의보기를 만들 : 공용 클래스 MyCustomView은 당신이 원하는대로 당신은 많은 사용자 정의보기를 추가 할 수 있습니다 FrameLayout이 {
public MyCustomView (Context context) {
super(context);
initView();
}
private void initView()
{
View view = inflate(getContext(), R.layout.live_card, null);
addView(view);
}
}
을 확장합니다. 도움이 되었기를 바랍니다.