Android:检查视图是否以编程方式与父底部/顶部对齐

时间:2016-02-09 04:29:17

标签: android layout layoutparams

如何检查我的视图是否与其父级底部(或顶部)对齐。

如果视图与父底部对齐,我想将其与父顶部对齐,反之亦然。我可以根据需要对齐视图,但我不知道如何先查看它。

我的XML:

public static boolean sum_rec(int[] A, int n, int k) {

    return addition(A, n, k, 0);

} // end sum_rec

private static boolean addition(int[] A, int n, int k, int i) {

    if (k == A[i] + A[n - 1 - i]) {

        return true;
    }
    else if (n == 1){

        return false;
    }
    else
        return addition(A, n, k, i++);
}

我的代码:

< RelativeLayout
    android:layout_width="20dp"
    android:layout_height="200dp">
        < Button 
            android:id="@+id/mybutton"     
            android:layout_height="25dp"       
            android:layout_alignParentBottom="true"
            android:layout_width="match_parent">
        < / Button>
< / RelativeLayout >

我不能使用getRule(),因为它只对API23及更高版本有效,而且我从API16开始使用。

我能做些什么来帮助我找到这个?感谢。

1 个答案:

答案 0 :(得分:1)

简单,您可以使用一个标志变量来实现,如下所示:

    int isTopAligned=0;
    int isBottomAligned=0;
    Button mybutton = (Button) findViewById(R.id.mybutton);
    LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, 25);
    if(isTopAligned==0){
       params1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
       params1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,0);
       isTopAligned=1;
       isBottomAligned=0;
     }
     else{
       params1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
       params1.addRule(RelativeLayout.ALIGN_PARENT_TOP,0);
       isTopAligned=0;
       isBottomAligned=1;
     }
     button.setLayoutParams(params1);

我认为不需要进一步详细说明,因为代码很容易理解。

注意:不需要isBottomAligned标志,因为检查isTopAligned就足够了。