小编Max*_*kin的帖子

安卓。设置左边距/右边距不起作用

这很奇怪,但是在 Java 代码中设置左边距或右边距在某些设备/平台上不起作用。

这是代码。简单的xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    >

    <View
        android:id="@+id/myView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:background="#00ff00" />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

爪哇:

@Override
public void onConfigurationChanged (Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);

    if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
    {
        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)findViewById(R.id.myView).getLayoutParams();
        params.leftMargin = 50;
        params.rightMargin = 50;
        params.topMargin = 50;
        params.bottomMargin = 50;
        findViewById(R.id.myView).requestLayout();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我在 FrameLayout 中有一个绿色的视图。在旋转时,我会更改视图的边距。(我的活动有 android:configChanges="orientation|screenSize")

结果如下:

三星 Galaxy S 3 (Android 4.1.2)(工作正常)

在此处输入图片说明

在此处输入图片说明

索尼爱立信 Xperia Arc S (Android 4.0.4)(工作奇怪!)

在此处输入图片说明

在此处输入图片说明

正如您在代码中看到的,在 Android 4.1.2 上正常工作。而在 Android 4.0.4 上没有设置左右边距,而是设置了上边距。为什么要顶?

我已经在模拟器上测试过了。所有平台 >= Android 4 …

java android margin

5
推荐指数
1
解决办法
6301
查看次数

标签 统计

android ×1

java ×1

margin ×1