0
private void movePlane() {
    // TODO Auto-generated method stub
    spielbereich = (FrameLayout) findViewById(R.id.spielbereich);
    int nummer = 0;
    while (nummer<spielbereich.getChildCount()) {
        ImageView muecke = (ImageView) spielbereich.getChildAt(nummer);



        if (muecke.getTag() == AIRPLANE ){


        FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) muecke.getLayoutParams();
        params.leftMargin -= 10;
        muecke.setLayoutParams(params);

        nummer ++;}
        }
    }

您好,我只想移动带有特定标签的 ImageView,但是当我这样做时,应用程序会崩溃。在布局中有一个永久的 ImageView。其他的都是在 Activity 中创建的。任何人都可以帮忙吗?

4

1 回答 1

0

您不能将 ImageView 转换为 FrameLayout。如果您想使用 FrameLayout 的边距进行移动,请尝试将每个 ImageView 包装在您的 spielbereich FrameLayout 中它自己的单独 FrameLayout 中。

您也没有检查 的负值params.leftMargin。虽然这不是您的主要问题的原因,但它可能会导致框架布局出现意外行为。Romain Guy(Google 的核心 Android 开发人员)建议您避免这种情况。看看这个问题的答案中的链接。

于 2013-09-13T17:12:52.167 回答