我想给一个按钮添加一个监听器,改变这个按钮的位置。我试图用这个片段解决这个问题,但没有像我预期的那样工作。
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int top = button.getTop();
button.setTop(top + 40);
}
});
此代码只是移动顶部而不是整个按钮。确实,在单击操作之后,按钮变为高度仅几个点,我没有看到标签。怎么了?
如果它可以帮助我们更好地理解我的问题,我将向您展示其他方法:
private void addButton(String text) {
FrameLayout.LayoutParams layoutParams;
layoutParams = new FrameLayout.LayoutParams(
width,
lineHeightButton
);
layoutParams.leftMargin = leftMargin;
layoutParams.topMargin = getNewTop(lineHeightButton);
final Button button = new Button(_mainActivity);
button.setText(text);
button.setLayoutParams(layoutParams);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int top = button.getTop();
button.setTop(top + 40);
}
});
_frameLayout.addView(button);
}
固定的:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FrameLayout.LayoutParams layoutParams;
layoutParams = new FrameLayout.LayoutParams(
button.getWidth(),
button.getHeight()
);
layoutParams.leftMargin = leftMargin;
layoutParams.topMargin = button.getTop() + 40;
button.setLayoutParams(layoutParams);
}
});