Android:检查视图是否以编程方式与父 bottom/top 对齐
Android: Check if view is aligned to parent bottom/top programmatically
如何检查我的视图是否与其父级底部(或顶部)对齐。
如果视图与父底部对齐,我想将其与父顶部对齐,反之亦然。我可以根据需要对齐视图,但我不知道如何先检查它。
我的XML:
< 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 >
我的代码:
Button mybutton = (Button) findViewById(R.id.mybutton);
LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, 25);
params1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
params1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
button.setLayoutParams(params1);
我不能使用 getRule(),因为它仅对 API23 及更高版本有效,而我从 API16 开始使用。
关于我如何找到它的任何帮助?谢谢
很简单,您可以使用一个标志变量来实现,如下所示:
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 就足够了。
如何检查我的视图是否与其父级底部(或顶部)对齐。
如果视图与父底部对齐,我想将其与父顶部对齐,反之亦然。我可以根据需要对齐视图,但我不知道如何先检查它。
我的XML:
< 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 >
我的代码:
Button mybutton = (Button) findViewById(R.id.mybutton);
LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, 25);
params1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
params1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
button.setLayoutParams(params1);
我不能使用 getRule(),因为它仅对 API23 及更高版本有效,而我从 API16 开始使用。
关于我如何找到它的任何帮助?谢谢
很简单,您可以使用一个标志变量来实现,如下所示:
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 就足够了。