RelativeLayout adiciona regra “RelativeLayout.LEFT_OF” não funciona
Eu tenho um relativoLayout como abaixo:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:id="@+id/parent" >
<ListView
android:layout_width="360dp"
android:layout_height="600dp"
android:id="@+id/list"
android:inputType="text"
android:maxLines="1"
android:layout_margin="50dp"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
No código java, eu quero adicionar uma visão à esquerda do listview, mas não funcionou:
m_relativeLayout = (RelativeLayout)findViewById(R.id.parent);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.LEFT_OF, m_listView.getId());
Button button2 = new Button(this);
button2.setText("I am button 2");
m_relativeLayout.addView(button2, layoutParams);
somente se eu definir o listview paraalignParentRight, vai funcionar. Isso é um bug do Android ou estou faltando alguma coisa?
eu sempre tentoaddView(View child, int index, LayoutParams params)
, mas pode funcionar apenas no layout linear. Então, há uma solução normal para tornar oRelativeLayout.LEFT_OF
trabalhos?
EDITAR
eu tenteiRelativeLayout.BELOW
eRelativeLayout.RIGHT_OF
, e eles funcionaram perfeitamente, então isso significa que eu não tenho espaço suficiente para pegar o botão? Eu tentei dar mais espaço, mas ainda não funciona.
Eu uso Toshiba AT100 (1280 * 800) e paisagem, então o espaço é suficiente. Testebelow
eright
exatamente o mesmo que oleft
. Eu acho que se eu colocar um controle A no relativelayout, então eu adiciono o controle B e decalharei que está à esquerda do controle A, o resultado deve ser o controle B irá empurrar o controle A para a direita, certo?