Android - 在视图下方显示吐司?

时间:2014-06-25 22:42:12

标签: android android-layout toast

我正在创建一个Android项目,我有一个按钮,我希望它在用户点击它之后在按钮下面显示一个吐司。我不想猜测按钮的坐标,所以有人提示吗?

3 个答案:

答案 0 :(得分:8)

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,但每次尝试时,吐司出现在按钮顶部而不是低于它。因子2使其适用于各种高度。)

在你的xml中:

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

答案 1 :(得分: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();

答案 2 :(得分:0)

无需使用toast而是使用Tooltip

  

见这里&gt; official documentation of tooltip