2014-09-19 91 views
1

我讀過有關設置一個TextView編程當父是的LinearLayout的利潤率幾個答案,但對我來說,我需要設置一個TextView的保證金,爲的RelativeLayout如何設置一個TextView的保證金在相對佈局

這裏是我的嘗試,並沒有工作:

介紹我在下面的代碼的TextView:

RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     params1.addRule(RelativeLayout.RIGHT_OF, idsArray[i]); 
     params1.addRule(RelativeLayout.LEFT_OF, R.id.imageButtonCamera); 
     params1.addRule(RelativeLayout.BELOW, R.id.divider); 
     params1.setMargins(8, 8, 8, 8) 

     description.setLayoutParams(params1); 

任何提示?

UDPATE:

我的佈局xml文件:

與ID textViewTip TextView的是一個我需要改變相對和利潤率屬性。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/item_layout_main" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@drawable/layer_car_background" > 

<TextView 
    android:id="@+id/textViewItemTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="12dp" 
    android:layout_marginLeft="8dp" 
    android:layout_marginBottom="12dp" 
    android:text="Large Text" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<ImageView 
    android:id="@+id/imageViewTitle" 
    android:layout_width="32dp" 
    android:layout_height="32dp" 
    android:layout_alignParentRight="true" 
    android:layout_alignTop="@+id/textViewItemTitle" 
    android:src="@drawable/ic_action_expand" /> 

<RelativeLayout 
    android:id="@+id/relativeLayoutExpandable" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_marginBottom="16dp" 
    android:animateLayoutChanges="true" 
    android:layout_below="@+id/textViewItemTitle" > 

    <View 
     android:id="@+id/divider" 
     android:layout_alignParentTop="true" 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:background="@android:color/darker_gray" /> 

    <ImageView 
     android:layout_below="@id/divider" 
     android:id="@+id/imageViewItem" 
     android:layout_width="100dp" 
     android:layout_height="133dp" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/textViewTip" 
     android:textSize="12sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/imageViewItem" 
     android:layout_alignTop="@+id/imageViewItem" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="22dp" 
     android:layout_marginBottom="22dp" 
     android:layout_toLeftOf="@+id/imageButtonCamera" 
     android:layout_toRightOf="@+id/imageViewItem" 
     android:text="TextView" /> 

    <EditText 
     android:id="@+id/editTextDescription" 
     android:layout_width="wrap_content" 
     android:layout_height="100dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/textViewTip" 
     android:layout_marginTop="8dp" 
     android:ems="10" 
     android:hint="@string/enter_own_description" 
     android:inputType="textMultiLine" > 

     <requestFocus /> 
    </EditText> 

    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="32dp" 
     android:layout_height="32dp" 
     android:layout_alignParentRight="true" 
     android:layout_alignTop="@+id/imageView1" 
     android:layout_marginRight="12dp" 
     android:src="@drawable/ic_ok" /> 

    <CheckBox 
     android:id="@+id/checkBox1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/imageView2" 
     android:layout_below="@+id/imageView2" 
     android:layout_marginTop="8dp" /> 

    <CheckBox 
     android:id="@+id/checkBox2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/checkBox1" 
     android:layout_alignBottom="@+id/checkBox1" 
     android:layout_alignRight="@+id/imageView1" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="32dp" 
     android:layout_height="32dp" 
     android:layout_below="@+id/editTextDescription" 
     android:layout_marginRight="17dp" 
     android:layout_toLeftOf="@+id/imageView2" 
     android:src="@drawable/ic_repair" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/checkBox2" 
     android:layout_alignBottom="@+id/checkBox2" 
     android:layout_alignParentLeft="true" 
     android:layout_marginLeft="8dp" 
     android:text="@string/estimated_cost" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/editTextEstCost" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/checkBox1" 
     android:layout_toLeftOf="@+id/checkBox2" 
     android:layout_toRightOf="@+id/textView1" 
     android:layout_marginRight="24dp" 
     android:ems="10" 
     android:inputType="numberDecimal" /> 

    <ImageButton 
     android:id="@+id/imageButtonCamera" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignTop="@+id/textViewTip" 
     android:background="@android:color/transparent" 
     android:src="@drawable/ic_action_camera" /> 

</RelativeLayout> 

+0

您的說明佈局是否已在xml中指定了layout_margin屬性? – Ogen 2014-09-19 14:19:52

+0

是的,我應該刪除它嗎? – AbsoluteHeero 2014-09-19 14:23:24

+0

請參閱我的回答 – Ogen 2014-09-19 14:32:07

回答

1

你已經得到了在XML已經指定所以試試這個,而不是一個layout_margin屬性。從XML中獲取屬性並修改它,而不是創建新的參數。

試試這個:

ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) description 
     .getLayoutParams(); 

params.setMargins(8, 8, 8, 8); 
+0

對不起,沒有工作 – AbsoluteHeero 2014-09-19 14:40:01

2
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 

    params1.setMargins(8, 8, 8, 8); 

    description.setLayoutParams(params1); 

嘗試。因爲它現在正在工作,並將提供利潤。

看我的更新答。從xml的頁邊距佈局運行良好,您可以從xml設置頁邊距。 as

<TextView 
    android:id="@+id/textViewTip" 
    android:textSize="12sp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/imageViewItem" 
    android:layout_alignTop="@+id/imageViewItem" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="20dp" 
    android:layout_marginTop="22dp" 
    android:layout_marginBottom="22dp" 
    android:layout_toLeftOf="@+id/imageButtonCamera" 
    android:layout_toRightOf="@+id/imageViewItem" 
    android:text="Changable" /> 

它正在工作,並且如果要以編程方式更改邊距,請使用以下代碼。

LayoutParams p=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
    TextView tv=(TextView)findViewById(R.id.textViewTip); 

    p.setMargins(30, 30, 30, 30); 
    tv.setLayoutParams(p); 
+0

那就是我第一次做的 – AbsoluteHeero 2014-09-19 14:39:42

+0

如果你已經在xml中指定了屬性,那麼你必須得到這些屬性並修改它們,然後在描述佈局上設置佈局參數 – Awais 2014-09-19 14:56:46

+0

我不能將這兩個參數設置爲我的textview。如果我設置了marginlayoutparams,我將放棄我的相關參數。 – AbsoluteHeero 2014-09-19 15:00:02