簡體   English   中英

無法為相對布局添加邊距

[英]Unable to add margin right to relative layout

我試圖在我的相對布局中增加邊距。 我需要將其添加到Horizo​​ntalScrollView並通過Java代碼綁定數據。 我已經創建了布局文件,並使用布局充氣器添加了該文件。

圖片在這里

下面是我的代碼:XML代碼:

                    <HorizontalScrollView
                        android:id="@+id/propertyListView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_alignParentTop="true"
                        android:layout_marginLeft="10dp"
                        android:background="@color/white"
                        android:fillViewport="true"
                        android:measureAllChildren="false"
                        android:scrollbars="none">


                        <LinearLayout
                            android:id="@+id/propertyListViewContainer"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="10dp"
                            android:orientation="horizontal">


                        </LinearLayout>
                    </HorizontalScrollView> 

下面是布局文件。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="280dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="20dp">


    <ImageView
        android:id="@+id/propertyImage"
        android:layout_width="280dp"
        android:layout_height="190dp"
        android:scaleType="fitXY"
        android:src="@drawable/image_ad_property" />

    <RelativeLayout
        android:id="@+id/propertyPriceContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/propertyImage"
        android:background="#f2f2f2"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        android:paddingTop="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="₹ 1.25 cr onwards"
            android:textColor="#6a6a6a"
            android:textSize="12sp" />


    </RelativeLayout>

    <TextView
        android:id="@+id/propertyName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/propertyPriceContainer"
        android:layout_marginTop="10dp"
        android:text="Park Royale"
        android:textColor="#353535"
        android:textSize="14sp" />


    <TextView
        android:id="@+id/propertyPlace"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/propertyName"
        android:layout_marginTop="4dp"
        android:text="Gokhale Marg"
        android:textColor="#6b6b6b"
        android:textSize="13sp" />


    <LinearLayout
        android:id="@+id/rateContainer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/propertyPriceContainer"
        android:layout_marginTop="10dp"
        android:orientation="horizontal">


        <ImageView
            android:id="@+id/ratingImage1"
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/icon_rating_selected" />


        <ImageView
            android:id="@+id/ratingImage2"
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/icon_rating_selected" />


        <ImageView
            android:id="@+id/ratingImage3"
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/icon_rating_selected" />


        <ImageView
            android:id="@+id/ratingImage4"
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/icon_rating_normal" />


        <ImageView
            android:id="@+id/ratingImage5"
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:src="@drawable/icon_rating_normal" />
    </LinearLayout>


    <LinearLayout
        android:id="@+id/varifiedContainer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/rateContainer"
        android:layout_marginTop="4dp"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="12dp"
            android:layout_height="10dp"
            android:layout_gravity="center"
            android:src="@drawable/icon_verified" />

        <TextView
            android:id="@+id/homeVerified"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dp"
            android:text="Verified"
            android:textColor="#6b6b6b"
            android:textSize="13sp" />
    </LinearLayout>


</RelativeLayout>

下面是java文件:

      LinearLayout propertyListViewContainer = (LinearLayout) findViewById(R.id.propertyListViewContainer);;

  for (int i = 0; i < 10; i++) {
            RelativeLayout child = (RelativeLayout) getLayoutInflater().inflate(R.layout.layout_project_details_property_item, null);
            final float scale = getResources().getDisplayMetrics().density; //set height and width
            int dpWidthInPx = (int) (280 * scale); //set width
            RelativeLayout.LayoutParams paramsBuyRent = new RelativeLayout.LayoutParams(dpWidthInPx, RelativeLayout.LayoutParams.WRAP_CONTENT);
            paramsBuyRent.setMargins(0, 0, 20, 0);
            child.setLayoutParams(paramsBuyRent);
            propertyListViewContainer.addView(child);

        }

變更:

RelativeLayout.LayoutParams paramsBuyRent = new RelativeLayout.LayoutParams(dpWidthInPx, RelativeLayout.LayoutParams.WRAP_CONTENT);

至:

RelativeLayout.LayoutParams paramsBuyRent = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

要么

RelativeLayout.LayoutParams paramsBuyRent = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

Layout Inflater的inflate方法具有第二個參數,該參數以根視圖作為參數。 如果您不提供,則邊距將被忽略。 因此,在此處提供容器視圖作為第二個參數。 像這樣:

for (int i = 0; i < 10; i++) {
        RelativeLayout child = (RelativeLayout) getLayoutInflater().inflate(R.layout.layout_project_details_property_item, propertyListViewContainer);
    }

這樣,就無需在最終的父布局中添加放大視圖,因為它將自動附加到所提供的布局中,從而保持其空白。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM