在Android中有条件地更改layout.xml中的值

时间:2014-02-20 05:36:58

标签: android xml

我正试图让android:layout_marginEnd =“ - 6dp”有条件地改为2dp:

<FrameLayout
    android:id="@+id/wifi_combo"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
android:layout_marginEnd="-6dp"
    >

我的条件是:

if (mSignalClusterStyle == STYLE_ALWAYS) {
            mMobileType.setVisibility(View.VISIBLE);
        } else if (mWifiVisible) {
            mMobileType.setVisibility(View.GONE);
        }

我想在if语句中添加一行,用xd文件中的2dp覆盖-6dp。

我已经探索过setMarginEnd(),但是这方面的资源很少,因为它只有一年的历史,而且我一直在用它编译错误。

以编程方式更改android:layout_marginEnd的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

  FrameLayout layout = (FrameLayout) findViewById(R.id.wifi_combo);      
        FrameLayout.LayoutParams params = (LayoutParams) layout.getLayoutParams();
        params.setMarginEnd(2);

答案 1 :(得分:0)

设置endMargin的正确方法是仅使用setMarginEnd(),在API 17中添加。

http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html#setMarginEnd(int)

顺便说一下,你得到的编译错误是什么?