[英]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 我已经阅读了一些有关在父级为LinearLayout时以编程方式设置textview的边距的答案,但就我而言,我需要在相对布局中设置textview的边距
here's what i tried and didn't work: 这是我尝试但没有奏效的方法:
description is my textview in the following code: 描述是我在以下代码中的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);
Any hint ? 有什么提示吗?
UDPATE: UDPATE:
my layout xml file: 我的布局xml文件:
the TextView with id textViewTip is the one i need to change relative and margins attributes. 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);
try this. 尝试这个。 as it is working now and will provide margins.
因为它现在正在工作,并将提供利润。
look my updated ans. 看我更新的ans。 from the xml the margin layout working well you can set the margin from xml.
从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" />
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.