在RelativeLayout上设置边距不适用于Kindle Fire

时间:2012-03-21 22:37:27

标签: android layout margin relativelayout kindle-fire

这与我的previous question类似,但它与Kindle Fire(2.3.4)无关 我使用FragmentTransaction将一个Fragment添加到FrameLayout中。我想动态更改Fragment使用的RelativeLayout的边距。

但是,Kindle Fire上的FrameLayout.layoutParams的边距不会改变。但是,这适用于3.2.1。我也尝试过使用setMargins(),但它没有用。

有谁知道如何动态更改Kindle Fire上的边距?

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.infocard, container, false);

        RelativeLayout infoLayout = (RelativeLayout) view.findViewById(R.id.info);
        infoLayout.setOnClickListener(new EmptyClickListener());

        final int width = 250;
        final int height = 270;
        int leftMargin = 0;
        int topMargin = 0;
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height);

        if (x - width < 0) {
            leftMargin = 0;
        } else {
            leftMargin = x - width + 40;
        }

        if (y >= 400 && y <= 480) {
            topMargin = 160;
        }

        params.leftMargin = leftMargin;
        params.topMargin = topMargin;

        //params.setMargins(leftMargin, topMargin, 0, 0); //this didnt work either
        infoLayout.setLayoutParams(params);

        TextView titleView = (TextView) view.findViewById(R.id.titleCard);
        titleView.setText(title);

        return view;
    }

1 个答案:

答案 0 :(得分:3)

好的我能够通过将我的infoLayout包装在另一个RelativeLayout中来解决这个问题,现在它可以完美地运行