简体   繁体   中英

How to set Margin of a textview in a relative layout

I've read a few answers about setting margins of a textview programmatically when the parent is a LinearLayout, but in my case i need to set margin of a textview in a relativelayout

here's what i tried and didn't work:

description is my textview in the following code:

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);

Any hint ?

UDPATE:

my layout xml file:

the TextView with id textViewTip is the one i need to change relative and margins attributes.

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

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

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

    description.setLayoutParams(params1);

try this. as it is working now and will provide margins.

look my updated ans. from the xml the margin layout working well you can set the margin from 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" />

it is working and if you want to change the margins programmatically then use the following code.

    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); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM