[英]How to set Margin of a textview in a relative layout
我已经阅读了一些有关在父级为LinearLayout时以编程方式设置textview的边距的答案,但就我而言,我需要在相对布局中设置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>
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.