0
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="match_parent" >

<LinearLayout
    android:id="@+id/buttons"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" >

    <Button
        android:id="@+id/insertButtonVIEW"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="insert" />

    <Button
        android:id="@+id/removeButtonVIEW"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="remove" />
</LinearLayout>
</RelativeLayout>

有时,根据情况,我使用方法隐藏 removeButtonVIEWsetVisibility(View.INVISIBLE); 发生这种情况时,我希望我的 insertButtonVIEW 占据屏幕的整个宽度(当两者都存在时,每个占据屏幕的 50%)。

由于这可能会或可能不会发生,我正在以编程方式进行这些更改。

我尝试了以下可行的方法,但是,它导致所有界面都变得笨拙,因为屏幕上所有内容的位置都变得混乱。

modifyButton.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

有什么提示吗?

应用答案后更新 1:我正在使用以下代码将按钮设置为不可见。

Bundle extras;
extras = getIntent().getExtras();
String answer = extras.getString("answer");

if(answer.equalsIgnoreCase("yes")
{
  insertButton.setEnabled(true);
  insertButton.setText("INSERT");
  removeButton.setVisibility(View.INVISIBLE);
}
else
{
 //whatever
}
4

2 回答 2

1
// I Have modify your code now try this one and you don't required set LayoutParams ().

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/buttons"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true" >

        <Button
            android:id="@+id/insertButtonVIEW"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="insert" />

        <Button
            android:id="@+id/removeButtonVIEW"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="remove" />
    </LinearLayout>

</RelativeLayout>



if(answer.equalsIgnoreCase("yes")
{
  insertButton.setEnabled(true);
  insertButton.setText("INSERT");
  removeButton.setVisibility(View.GONE);
}
else
{
 //whatever
}
于 2013-09-10T03:55:42.813 回答
0

采用

setVisibility(View.GONE);

*删除这个 *

modifyButton.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

并设置

 android:layout_width="0dp"

在两个按钮中

于 2013-09-09T12:50:20.963 回答