[英]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.