【问题标题】:Add 4 views to 4 corners programmatically using ALIGN_PARENT使用 ALIGN_PARENT 以编程方式将 4 个视图添加到 4 个角
【发布时间】:2017-09-05 18:02:10
【问题描述】:

我正在尝试以编程方式将 4 个视图添加到屏幕的 4 个角,但它没有按要求工作。

View[] TchBoxAryVar = new View[4];
int LyoRulAryVar[] = {RelativeLayout.ALIGN_PARENT_TOP,
                    RelativeLayout.ALIGN_PARENT_TOP | 
                    RelativeLayout.ALIGN_PARENT_RIGHT,
                    RelativeLayout.ALIGN_PARENT_BOTTOM,
                    RelativeLayout.ALIGN_PARENT_BOTTOM |
                    RelativeLayout.ALIGN_PARENT_RIGHT};
int ClrAryVar[] = {Color.RED, Color.GREEN, Color.GRAY, Color.MAGENTA};

for(int IdxVal = 0; IdxVal < TchBoxAryVar.length; IdxVal++)
{
    Log.d("TAG", "onCreate: " + IdxVal);
    TchBoxAryVar[IdxVal] = new View(this);

    RelativeLayout.LayoutParams LyoRulVar = new RelativeLayout.LayoutParams(200, 200);
    LyoRulVar.addRule(LyoRulAryVar[IdxVal]);
    TchBoxAryVar[IdxVal].setLayoutParams(LyoRulVar);
    TchBoxAryVar[IdxVal].setBackgroundColor(ClrAryVar[IdxVal]);
    MainViewVav.addView(TchBoxAryVar[IdxVal]);
}

【问题讨论】:

    标签: android view alignment screen


    【解决方案1】:

    二维数组可以解决问题。您不能使用“|”以编程方式设置多个对齐分隔器。试试下面的例子:

    final int LyoRulAryVar[][] = new int[][]{
                {RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.ALIGN_PARENT_LEFT},
                {RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.ALIGN_PARENT_RIGHT},
                {RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.ALIGN_PARENT_LEFT},
                {RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.ALIGN_PARENT_RIGHT}
        };
        int ClrAryVar[] = {Color.RED, Color.GREEN, Color.GRAY, Color.MAGENTA};
    
        for (int IdxVal = 0; IdxVal < TchBoxAryVar.length; IdxVal++) {
            TchBoxAryVar[IdxVal] = new View(this);
            RelativeLayout.LayoutParams LyoRulVar = new RelativeLayout.LayoutParams(200, 200);
            for (int j = 0; j < LyoRulAryVar[IdxVal].length; j++) {
                LyoRulVar.addRule(LyoRulAryVar[IdxVal][j]);
            }
            TchBoxAryVar[IdxVal].setLayoutParams(LyoRulVar);
            TchBoxAryVar[IdxVal].setBackgroundColor(ClrAryVar[IdxVal]);
            MainViewVav.addView(TchBoxAryVar[IdxVal]);
        }
    

    【讨论】:

      猜你喜欢
      • 2019-01-25
      • 1970-01-01
      • 2021-10-24
      • 2017-08-11
      • 2017-10-09
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多