我试图在我的片段中创建一个列表,在那里我创建了一个卡片视图并使用适配器我用卡片视图填充了列表。但我面临的问题是,在我的android studio XML布局中,你可以看到屏幕左右两侧的边距,而当我在手机上安装时,边缘没有看到!
Android studio XML设计:
Whats comes when I installed on my phone
我的XML代码是:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<RelativeLayout
android:id="@+id/secndLaout"
android:orientation="vertical"
android:layout_width="match_parent"
android:paddingLeft="15dp"
android:paddingTop="15dp"
android:paddingBottom="8dp"
android:paddingRight="15dp"
android:background="@drawable/card_background_selector"
android:descendantFocusability="afterDescendants"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_height="50dp"
android:id="@+id/rlImage"
android:layout_alignParentTop="true"
android:layout_width="50dp">
<ImageView
android:id="@+id/imageId"
android:layout_width="50dp"
android:layout_height="50dp"
android:scaleType="fitCenter"
android:src="@drawable/mobeeloadicon"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rlamount"
android:layout_width="200dp"
android:layout_alignParentTop="true"
android:paddingLeft="8dp"
android:layout_height="20pt"
android:layout_toRightOf="@+id/rlImage"
android:layout_toEndOf="@+id/rlImage"
android:layout_marginLeft="2pt">
<TextView
android:text="Paid To"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/line1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="5pt" />
<TextView
android:text="xxxxx878"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/line2"
android:layout_below="@+id/line1"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="7pt" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/descp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/dateLayout"
android:layout_width="150dp"
android:layout_toRightOf="@+id/dateLayout"
android:layout_height="20pt">
<!---->
<TextView
android:text="Credited to You"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/credit"
android:textSize="5pt"
android:layout_below="@+id/date"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="2dp" />
<TextView
android:text="27/12/2017"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/date"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textSize="5pt" />
</RelativeLayout>
<TextView
android:id="@+id/line"
style="?android:attr/listSeparatorTextViewStyle"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#e7e7e7"
android:layout_below="@+id/descp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="6pt" />
<RelativeLayout
android:layout_width="match_parent"
android:visibility="visible"
android:layout_below="@+id/line"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:id="@+id/head"
android:layout_marginTop="3.5pt"
android:layout_weight="3.0"
android:orientation="horizontal"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0">
<TextView
android:text="Amount Paid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/amountinfo"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textAlignment="center"
android:textSize="6pt" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0">
<TextView
android:text="Cost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/costinfo"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textAlignment="center"
android:textSize="6pt" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0">
<TextView
android:text="Balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/balanceinfo"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textAlignment="center"
android:textSize="6pt" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_below="@+id/head"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:orientation="horizontal" >
<RelativeLayout
android:id="@+id/costLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0">
<TextView
android:text="1200 RM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/amount"
android:gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textAlignment="center"
android:textStyle="normal|bold"
android:textSize="6pt"
android:layout_marginTop="1pt" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/amountinfolayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0">
<TextView
android:text="1000 RM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cost"
android:gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textAlignment="center"
android:textStyle="normal|bold"
android:textSize="6pt"
android:layout_marginTop="1pt" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/balanceinfolayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0">
<TextView
android:text="80.5 RM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/balance"
android:gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textAlignment="center"
android:textStyle="normal|bold"
android:textSize="6pt"
android:layout_marginTop="1pt" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
我的适配器代码:
public class CardArrayAdapter extends ArrayAdapter<Card> {
private static final String TAG = "CardArrayAdapter";
private List<Card> cardList = new ArrayList<Card>();
private Context mContext;
static class CardViewHolder {
TextView line1;
TextView line2;
ImageView cimageView;
TextView amount;
TextView credit;
TextView date;
TextView cost;
TextView balance;
TextView amountinfo;
TextView costinfo;
TextView balanceinfo;
}
public CardArrayAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
this.mContext = context;
}
@Override
public void add(Card object) {
cardList.add(object);
super.add(object);
}
@Override
public int getCount() {
return this.cardList.size();
}
@Override
public Card getItem(int index) {
return this.cardList.get(index);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
CardViewHolder viewHolder;
if (row == null) {
LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.list_item_card, parent, false);
viewHolder = new CardViewHolder();
viewHolder.line1 = (TextView) row.findViewById(R.id.line1);
viewHolder.line2 = (TextView) row.findViewById(R.id.line2);
viewHolder.amount = (TextView) row.findViewById(R.id.amount);
viewHolder.date = (TextView) row.findViewById(R.id.date);
viewHolder.credit = (TextView) row.findViewById(R.id.credit);
viewHolder.cimageView = (ImageView) row.findViewById(R.id.imageId);
viewHolder.cost = (TextView) row.findViewById(R.id.cost);
viewHolder.balance = (TextView) row.findViewById(R.id.balance);
viewHolder.amountinfo = (TextView) row.findViewById(R.id.amountinfo);
viewHolder.costinfo = (TextView) row.findViewById(R.id.costinfo);
viewHolder.balanceinfo = (TextView) row.findViewById(R.id.balanceinfo);
row.setTag(viewHolder);
} else {
viewHolder = (CardViewHolder)row.getTag();
}
Card card = getItem(position);
viewHolder.line1.setText(card.getLine1());
viewHolder.line1.setTextColor(Color.parseColor("#000000"));
viewHolder.line2.setText(card.getLine2());
viewHolder.line2.setTextColor(Color.parseColor("#999999"));
viewHolder.amount.setText(card.getAmount());
viewHolder.amount.setTextColor(Color.parseColor("#000000"));
viewHolder.date.setText(card.getDate());
viewHolder.date.setTextColor(Color.parseColor("#999999"));
viewHolder.credit.setText(card.getCredit());
viewHolder.credit.setTextColor(Color.parseColor("#000000"));
viewHolder.cost.setText(card.getCost());
viewHolder.cost.setTextColor(Color.parseColor("#000000"));
viewHolder.balance.setText(card.getBalance());
viewHolder.balance.setTextColor(Color.parseColor("#000000"));
viewHolder.amountinfo.setText(card.getAmountinfo());
viewHolder.amountinfo.setTextColor(Color.parseColor("#000000"));
viewHolder.costinfo.setText("Cost");
viewHolder.costinfo.setTextColor(Color.parseColor("#000000"));
viewHolder.balanceinfo.setText("Balance");
viewHolder.balanceinfo.setTextColor(Color.parseColor("#000000"));
Log.e("TRASACTION URL",Constants.BASE_URL_IMAGE+card.getUrl());
Picasso.with(mContext).load(Constants.BASE_URL_IMAGE+card.getUrl()).into(viewHolder.cimageView);
return row;
}
public Bitmap decodeToBitmap(byte[] decodedByte) {
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
}
}
这里有什么问题!我在这里找不到任何可能的原因!
- UPDATE -
最后我得到了一个正确的..只需在Framelayout中添加一个封闭的cardview解决了这个问题;
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:id="@+id/card_view"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/tools"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp">
<!-- my layouts here -->
</android.support.v7.widget.CardView></FrameLayout>
答案 0 :(得分:4)
在xml中的CardView小部件标记内使用此属性。
card_view:cardUseCompatPadding="true"
恕我直言,您应该使用此属性并删除
android:layout_margin="10dp"
来自CardView标签。
答案 1 :(得分:1)
将您的cardview布局设置为框架布局,它适用于我