我有RelativeLayout
activity.xml的代码
<RelativeLayout
android:layout_height="50dip"
android:layout_width="fill_parent"
android:id="@+id/relativeLayout"
android:background="#686868"
>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_margin="5dip"
android:layout_alignParentLeft="true"
android:text="Back"
android:textColor="#FFFFFF"
android:id="@+id/btnBack"
/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/title_header"
android:text="Header of page"
android:layout_centerInParent="true"
android:textColor="#FFFFFF"
/>
</RelativeLayout>
以下是活动代码: -
public class MainActivity extends Activity {
int valCheck;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
if(valCheck==0)
{
//here set title again for backbutton is "backPreviousPage" and set
//position again of title_header is right of backButton with
//margin=5dip(not set position is centerInParent as code
}
}
}
我不知道通过代码在relativeLayout中获取元素和设置边距的方法。你能帮助我吗?
答案 0 :(得分:0)
试试这种方式。
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)relativeLayout.getLayoutParams();
params.setMargins(80, 0, 0, 0); //left, top, right, bottom
params.height = 60; //set height dynamically
params.width = 200; // set width dynamically
relativeLayout.setLayoutParams(params);
我希望这会对你有所帮助。
答案 1 :(得分:0)
要在Android代码中访问UI元素,请使用findViewById
方法。例如:
Button btnBack = (Button)findViewById(R.id.btnBack);
一旦您可以访问所需的所有元素,就可以使用API中提供的setter函数根据需要更改布局。由于大多数(如果不是全部)UI元素都是View类的子类,因此很可能会在那里定义您需要的方法。这是一个很好的参考: http://developer.android.com/reference/android/view/View.html
所有View对象都继承setLayoutParams
方法。因此,您可以将Gunaseelan建议的方法应用于Button和TextView。
答案 2 :(得分:0)
这可能有助于你
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
params.addRule(RelativeLayout.RIGHT_OF, 1001);
params.addRule(RelativeLayout.LEFT_OF, 1000);
此处,ID 1001和1000是我的EditText
id
,也是动态添加到相对
答案 3 :(得分:0)
试试这个代码......
<LinearLayout
android:layout_height="50dip"
android:layout_width="fill_parent"
android:id="@+id/linearLayout"
android:background="#686868"
android:orientation="horizontal"
>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_margin="5dip"
android:layout_alignParentLeft="true"
android:text="Back"
android:textColor="#FFFFFF"
android:id="@+id/btnBack"
/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/title_header"
android:text="Header of page"
android:layout_centerInParent="true"
android:textColor="#FFFFFF"
/>
</LinearLayout>
和java代码......
public class MainActivity extends Activity {
int valCheck;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
Button btn = (Button) findViewById(R.id.btnBack);
if(valCheck==0)
{
//here set title again for backbutton is "backPreviousPage" and set
//position again of title_header is right of backButton with
//margin=5dip(not set position is centerInParent as code
btn.setText("backPreviousPage");
}
}
}