我已经阅读了一些关于在父级是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 :(得分:2)
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params1.setMargins(8, 8, 8, 8);
description.setLayoutParams(params1);
试试这个。因为它现在正在工作,并将提供利润。
看看我更新的ans。从xml边距布局运行良好,您可以设置xml的边距。如
<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);