Android - 在一个视图下方显示提示信息?

6

我正在创建一个Android项目,有一个按钮,我希望用户点击后,在按钮下方显示一个toast提示。我不想猜测按钮的坐标,是否有人能给个提示?

3个回答

12

1) 要获得按钮的 x 坐标,请在按钮上调用 getLeft()。要获得按钮底部的 y 坐标,调用 getTop()getHeight()

2) 将这些坐标放入 Toast 中,请使用 setGravity(Gravity.TOP|Gravity.LEFT, x, y)

3) 要在用户点击按钮时执行此操作,请在按钮的 onClick 方法中进行。

public void makeToast(View view){

    int x = view.getLeft();
    int y = view.getTop() + 2*view.getHeight(); 
    Toast toast = Toast.makeText(this, "see me", Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.TOP|Gravity.LEFT, x, y);
    toast.show();
}

(在逻辑上,我一直认为应该是getTop + getHeight,但每次我尝试那样做时,Toast都会出现在按钮上面而不是下面。乘以2的因素使其适用于各种高度。)

在您的xml中:

<Button
        <!-- put other attributes here -->
        android:onClick="makeToast" />

0

在“setGravity”行上进行调整...

下面的代码应该执行:

       View v = findViewById(R.id.youButtnView);                    
        int location[]=new int[2];
        v.getLocationOnScreen(location);
   Toast toast=Toast.makeText(getApplicationContext(), 
    "Your message", Toast.LENGTH_LONG);
    toast.setGravity(Gravity.TOP|Gravity.LEFT,v.getRight()-25, location[1]-10);
    toast.show();

0

需要注意的是,此功能是在API Level 26中添加的。您无法在低于API Level 26的版本中使用它。 - Mohammed Farhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接