2017-05-06 2 views
0

カードビューを作成したアダプタを使用してリストを作成しました。しかし、私が直面している問題は、アンドロイドスタジオのXMLレイアウトでは、画面の左右に余白がありますが、私の電話にインストールしたときには余白が見えません!リストビューで使用したときにカードビューの余白が正しく表示されない

アンドロイドスタジオXML設計:

Android Studio XML Design

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囲んを追加...正しいこの1つを得ました。

<?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> 

答えて

2

xmlのCardViewウィジェットタグ内でこの属性を使用します。

card_view:cardUseCompatPadding="true" 

IMHO、あなたは、この属性を使用して、CardViewタグから

android:layout_margin="10dp"

を削除する必要があります。

+0

いいえ、まだカードの余白は左右から0です –

1

フレームレイアウトにカードレイアウトを配置すると、それは私のために働きます

関連する問題