[英]How to align in RelativeLayout properly?
嗨,我正在嘗試以編程方式設計一個布局,在其中我有一個textview和一個edittext以及一個按鈕。 兩行。 TextView的第一行。 第二行帶有Edittext和按鈕。 Edittext應該從左延伸到按鈕。 現在,Textview出現在第一行中,但是第二行(帶有Edittext和Button)被弄亂了。 現在,EditText並沒有一直擴展到發送按鈕。 我嘗試使用Wrap_Content,Fill_parent,Match_Parent,但沒有運氣。 這是我到目前為止的內容:
RelativeLayout layout = new RelativeLayout(this);
EditText myText = new EditText(this);
Button myBtn = new Button(this);
parameters_layout = new
RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
parameters_layout.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
parameters_layout.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
myText.setId(1);
myText.setLayoutParams(parameters_layout);
layout.addView(myText,parameters_layout);
parameters_layout = new
RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
parameters_layout.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
parameters_layout.addRule(RelativeLayout.RIGHT_OF, myText.getId());
myBtn.setLayoutParams(parameters_layout);
layout.addView(myBtn,parameters_layout);
謝謝您的幫助,不勝感激。
編輯:澄清我知道
parameters_layout = new
RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
可以用數字代替。 例如:
parameters_layout = new
RelativeLayout.LayoutParams(350,
RelativeLayout.LayoutParams.WRAP_CONTENT);
那是350個像素,dp,sp嗎? 它是什么?
我了解的是您要實現的是屏幕右下角的一個Button和按鈕左側的一個擴展EditText。 我對么?
如果那樣,請嘗試此。 我在我的銀河系關系中測試了此代碼,並且效果很好。
RelativeLayout layout = new RelativeLayout(this);
EditText myText = new EditText(this);
Button myBtn = new Button(this);
myBtn.setId(1);
RelativeLayout.LayoutParams parameters_layout = new
RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
parameters_layout.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
parameters_layout.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
parameters_layout.addRule(RelativeLayout.LEFT_OF, myBtn.getId());
myText.setLayoutParams(parameters_layout);
layout.addView(myText,parameters_layout);
parameters_layout = new
RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
parameters_layout.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
parameters_layout.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
myBtn.setLayoutParams(parameters_layout);
layout.addView(myBtn,parameters_layout);
一個技巧是,當您使用RelativeLayout時,首先找到位置固定的視圖(在您的情況下為右下角按鈕),然后使用特定於布局的相對參數找到其他視圖。 (在您的情況下為LEFT_OF)。
另一個提示是,只要您需要以編程方式分配ID值,就不要分配任何特定值(在您的情況下為'1'),而是可以將ID定義為資源,然后不使用任何值來使用它擔心ID沖突或某些奇怪的行為。
有一個有關ID資源的文檔,請檢查一下-http://developer.android.com/guide/topics/resources/more-resources.html#Id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.