Android 如何将 Fab 按钮的位置设置到 Coordinator Layout 的左边缘或右边缘
How to set position of Fab button to the left or right edge of the Coordinator Layout in Android
我正在使用此代码:
fabButton.setOnTouchListener(new View.OnTouchListener() {
float x, y;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_MOVE:
fabButton.setX(fabButton.getX() + (event.getX() - x));
fabButton.setY(fabButton.getY() + (event.getY() - y));
return true;
case MotionEvent.ACTION_DOWN:
x = event.getX();
y = event.getY();
return true;
}
return false;
}
});
现在我想将 Fab 按钮的位置设置到 Coordinator 布局的最右边或最左边。
可能是
if (xCoordinate < screen center)
{
align Fab button to the Right screen
}
if (xCoordinate > Screen Center)
{
align Fab button to the left of the screen
}
我不知道如何管理这件事。
试试这个:----
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
CoordinatorLayout.LayoutParams params= (CoordinatorLayout.LayoutParams)
fab.getLayoutParams();
params.anchorGravity = Gravity.BOTTOM | GravityCompat.START;
fab.setLayoutParams(params/);
根据需要设置开始、结束、顶部、底部。
CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams)
floatingbutton.getLayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
/// or any other place you want like
我设法做到了,现在它是向左或向右放置 Fab 按钮的正确方法
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
p.setBehavior(new FloatingActionButton.Behavior());
fab.setLayoutParams(p);
if(fab.getX() < 0)
{
fab.setX(2.0f);
}
if(fab.getX() > size.x)
{
fab.setX(size.x -1);
}
if(fab.getY() < 0)
{
fab.setY(4.0f);
}
if(fab.getY() > size.y)
{
fab.setY(size.y -1);
}
if(fab.getX() < size.x/2)
{
fab.setX((5*size.x/100));
}else
{
fab.setX(size.x - (12*size.x/100));
}
它的工作
我正在使用此代码:
fabButton.setOnTouchListener(new View.OnTouchListener() {
float x, y;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_MOVE:
fabButton.setX(fabButton.getX() + (event.getX() - x));
fabButton.setY(fabButton.getY() + (event.getY() - y));
return true;
case MotionEvent.ACTION_DOWN:
x = event.getX();
y = event.getY();
return true;
}
return false;
}
});
现在我想将 Fab 按钮的位置设置到 Coordinator 布局的最右边或最左边。
可能是
if (xCoordinate < screen center)
{
align Fab button to the Right screen
}
if (xCoordinate > Screen Center)
{
align Fab button to the left of the screen
}
我不知道如何管理这件事。
试试这个:----
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
CoordinatorLayout.LayoutParams params= (CoordinatorLayout.LayoutParams)
fab.getLayoutParams();
params.anchorGravity = Gravity.BOTTOM | GravityCompat.START;
fab.setLayoutParams(params/);
根据需要设置开始、结束、顶部、底部。
CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams)
floatingbutton.getLayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
/// or any other place you want like
我设法做到了,现在它是向左或向右放置 Fab 按钮的正确方法
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
p.setBehavior(new FloatingActionButton.Behavior());
fab.setLayoutParams(p);
if(fab.getX() < 0)
{
fab.setX(2.0f);
}
if(fab.getX() > size.x)
{
fab.setX(size.x -1);
}
if(fab.getY() < 0)
{
fab.setY(4.0f);
}
if(fab.getY() > size.y)
{
fab.setY(size.y -1);
}
if(fab.getX() < size.x/2)
{
fab.setX((5*size.x/100));
}else
{
fab.setX(size.x - (12*size.x/100));
}
它的工作