- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在文件 cardslib_item_card_view
中声明了一张卡片:
<it.gmariotti.cardslib.library.view.CardViewNative
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
card_view:cardCornerRadius="4dp"
style="@style/native_recyclerview_card.base"
android:id="@+id/carddemo"
android:layout_width="match_parent" android:layout_height="wrap_content">
并在 onCreate()
方法中设置为内容 View :
public class CardMariotti extends ActionBarActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cardslib_item_card_view);
//Create a Card
Card card = new Card(this);
CardViewNative cardView = (CardViewNative) this.findViewById(R.id.carddemo);
cardView.setCard(card);
card.setOnClickListener(new Card.OnCardClickListener() {
@Override
public void onClick(Card card, View view) {
Toast.makeText(CardMariotti.this, "Clickable card", Toast.LENGTH_LONG).show();
}
});
}
现在,我想用我自己的布局自定义它,包含一个窄标题和一些信息,如下所示:
<RelativeLayout android:id="@+id/cardlayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:background="?android:selectableItemBackground"
android:clickable="true">
<!-- layout containing 3 TextView -->
</RelativeLayout>
这样一个过程的规范程序是什么?我尝试了很多调整,即:
cardslib_item_layout.xml
的 xml 文件,并通过 Card
的构造函数引用它:Card card = new Card(this, R .layout.cardslib_item_layout);
然后设置 setContentView(R.layout.cardslib_item_card_view)
setContentView(R.layout.cardslib_item_card_view)
。这边; cardslib_item_card_view
:
<it.gmariotti.cardslib.library.view.CardViewNative
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
card_view:cardCornerRadius="4dp"
android:id="@+id/carddemo"
android:layout_width="match_parent" android:layout_height="wrap_content">
<RelativeLayout>
<!-- my layout containing a header and some TextViews -->
</RelativeLayout>
</it.gmariotti.cardslib.library.view.CardViewNative>
在这两个测试中,我都遇到了以下问题:
Card.OnCardClickListener
将不起作用,因为用户将点击 RelativeLayout 而不是卡片本身)尝试 1: 尝试 2:
什么是正则程序?
EDIT2: ANSWER
The contribution given by @Msk worked fine for me, although I discovered later that with some minor changes it is also possible to obtain the same results by using the original cardslib's
Card
class, without resorting to the creation of a new classDeviceCard
extending theCard
class.I was able to adjust my layout (header and the rest of the card's layout overlapping with each other, as shown in the screenshots) with just some minor and trivial changes in the
cardslib_item_layout.xml
file (which I had overlooked before); at the same time I was able to eliminate the phantom padding that is automatically attached to every card, by applying Mariotti's answer to this question.
最佳答案
试试这个
您可以为 cards-lib 定义自己的布局。
创建自定义 XML:
这是一个例子custom_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="6dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:id="@+id/parentView">
<TextView
android:id="@+id/name"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="27"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:text=""
android:layout_gravity="center"
android:editable="false"
/>
</LinearLayout>
在您的 JAVA 代码中为您希望使用的自定义卡片创建一个类:
import it.gmariotti.cardslib.library.internal.Card;
import it.gmariotti.cardslib.library.internal.ViewToClickToExpand;
public class DeviceCard extends Card {
private String IP;
private String MAC;
private String name;
private Boolean reachable;
private Boolean editable;
Boolean markedFlag;
public DeviceCard(Context context) {
this(context, R.layout.custom_layout);
}
public DeviceCard(Context context,String param1,...,Type paramn) {
this(context, R.layout.device_card);
this.name = param1;
}
public DeviceCard(Context context, int innerLayout) {
super(context, innerLayout);
init();
Log.d("myTag", "Init called");
}
private void init(){
}
@Override
public void setupInnerViewElements(ViewGroup parent, final View view) {
Log.i("myTag","setupInnerView");
final TextView nameBox = (TextView)view.findViewById(R.id.name);
//edit name if required
}
}
现在在你的JAVA代码中,当你需要使用card-list时:
DeviceCard card = new DeviceCard(this, name);
这个方法对我一直有效
关于android - 使用 cardslib 自定义卡片的准确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29987783/
我正在试验 Android cardslib 并尝试使用本教程显示图像:https://github.com/gabrielemariotti/cardslib/blob/master/doc/THU
我有两个项目,我在其中创建了一组扩展 card 类的自定义 cards,然后将它们插入到 StaggeredView 中。 我的问题是,在其中一个项目中,卡片角会自动变圆,而在另一个项目中则不会! 此
我正在使用 Cardslib 并在红色矩形中标记,网格中的一些卡片溢出并加入下面的下一张卡片。我该如何防止这种情况? 最佳答案 我必须检查这个案例才能找到真正的解决方案。 我很确定这取决于 CardH
我正在尝试将 Cardslib 库与我可以刷出和撤消的卡片列表一起使用。我的问题是撤消栏总是显示并且单击撤消不会执行任何操作。通过调试我意识到我的问题是 CardArrayAdapter 需要一个上下
我想用 Cardslib 更改 Material 卡的默认阴影。 我有卡 根据文档 https://github.com/gabrielemariotti/cardslib/blob/master/
我正在使用 Cardslib并尝试用自定义布局填充每张卡片。 我已设置好所有内容,但似乎无法正常工作。我遇到的问题是 CardListView 没有被填充。 这是我的代码: public class
我创建了一个扩展 CardArrayAdapter 的自定义适配器。只是玩它以获得舒适。有点把它当作一个带有观察器的自定义底座适配器等等。在测试应用程序中设置我认为正确的所有内容,应用程序打开,但没有
我在文件 cardslib_item_card_view 中声明了一张卡片: 并在 onCreate() 方法中设置为内容 View : public class CardMariotti exte
使用 https://github.com/gabrielemariotti/cardslib ,我想要一个如下所示的布局: ----------- (this card has dynamic te
总结:我是 Android 开发的新手,我正在使用 Gabriele Mariotti 出色的 cardslib 在卡片上显示图像 (.jpg)。我希望图像无边距地覆盖整张卡片。相反,我在图像的所有边
我正在从 Github 的 Cardslib 库中实现 CardWithList 设计。图书馆链接:Cardslib Github 我面临的问题是我无法更新卡值这是代码GetStat.java imp
我正在使用 cardslib 库进行开发并实现 this示例。 尽管我在创建 CardRecyclerView 对象时严格按照教程中的说明进行操作,但该对象似乎始终为 null。 检查我的代码: @O
我刚刚实现了 Cardslib在我的代码中。 我正在使用以下代码来实现 TopColoredCard: ArrayList cards = initCard(); updateAdapter(card
我在我的 Android 应用程序中使用 CardsLib 库。我正在尝试使用此库中的 MaterialCard。但是,当我尝试运行示例时 ,我得到了这个输出 下面是这个 Activity 的代码:
我正在从 Github 的 Cardslib 库中实现新的 Material Card 设计。图书馆链接:Cardslib Github但我无法在 Recycler View 中实现多张卡片。如果有人
我想创建一个类似于 GooglePlay 的 GridView。 我找到了这个 library在 Github 上。我不完全知道如何将它包含到我的项目中。我尝试将它添加到“Build Path”中,但
我正在尝试使用 this card library对于我正在尝试构建的 Android 应用程序的 UI,但我遇到了一些问题。 作者has this guide for using the libra
我正在尝试遵循这个例子 cardslib example但我遇到了一个异常,我看不出我做错了什么。 这是我的代码: public class FragmentA extends Fragment{
我正在构建一个同时使用 android-spinnerwheel 和 cardsLib 库的应用程序。SpinnerWheel 工作得很好,但是当我尝试使用滑动来删除 cardsLib 的功能时,sp
我是 android 编程的新手,实际上我正在尝试学习如何构建一个非常简单的应用程序,使其看起来像 Google Play 商店用户界面。 我找到了非常酷的 android 库,称为 cardslib
我是一名优秀的程序员,十分优秀!