我正试图通过自定义XML布局构建一个沉浸式结构。
我的理解是,如果我使用CardBuilder,我将需要embed_inside,但我想使用整个屏幕与我的XML布局。
这似乎是以前的可能使用卡,但接口已折旧。
我可能只是缺少了一个基本的玻璃概念,但到目前为止,我读到的每个示例或文档都通过CardBuilder.Layout访问并使用预定义的玻璃布局。
发布于 2014-11-21 16:42:32
如果您喜欢使用您自己的自定义布局,则不需要使用CardBuilder:确保遵循我们的设计指南以确保您符合我们的规范。
要使用您的自定义布局,只需像通常那样膨胀一个View,并在应用程序中使用。
对于Activity,您可以如下所示:
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.my_custom_layout);
}如果使用的是CardScrollView,只需修改CardScrollAdapter的getView方法以返回View。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// You can inflate the View using a LayoutInflater:
// LayoutInflater.from(mContext).inflate(R.layout.my_custom_layout, parent);
return mCustomView;
}发布于 2014-12-05 14:49:19
我自己也有过这个问题,我能够很容易地解决它。它没有太多的文档,这是令人失望的。
由于取消了Card类,并且CardBuilder.EMBED_INSIDE相当有限。正如前面提到的,您唯一的选择是使用自定义视图。但你不需要手动充气!如果使用are,则使用CardScrollView和CardScrollAdapter。您可以在活动中执行以下操作:
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,因为它现在有视图而不是CardBuilders:
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中创建您想要的布局。并创建自定义视图:公共类MyCustomView扩展FrameLayout{
public MyCustomView (Context context) {
super(context);
initView();
}
private void initView()
{
View view = inflate(getContext(), R.layout.live_card, null);
addView(view);
}
}您可以添加任意多个自定义视图。我希望它能帮上忙
https://stackoverflow.com/questions/27049873
复制相似问题