我想在我的应用程序的任何文本视图中的top | left位置设置我的toast消息,所以我使用了这段代码
public class CustomToast extends Activity {
TextView mTextView1;
TextView mTextView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_toast);
mTextView1=(TextView)findViewById(R.id.textView);
mTextView2=(TextView)findViewById(R.id.textView2);
mTextView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCustomAlert( );
}
});
mTextView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCustomAlert( );
}
});
}
public void showCustomAlert( )
{
Context context = getApplicationContext();
// Create layout inflator object to inflate toast.xml file
LayoutInflater inflater = getLayoutInflater();
// Call toast.xml file for toast layout
View toastRoot = inflater.inflate(R.layout.toast, null);
Toast toast = new Toast(context);
// Set layout to toast
toast.setView(toastRoot);
toast.setGravity(Gravity.TOP|Gravity.LEFT ,0, 0);
toast.setDuration(2000);
toast.show();
}
}
当我运行上面的代码时,每次特别是textview时,toast显示在屏幕顶部,请参阅下面的图片。
最初是两个文本视图屏幕
当我点击第二 textview时,我得到了这个吐司位置
知道如何解决这个问题?
答案 0 :(得分:1)
您需要做的就是根据屏幕上textview的位置管理Toast位置。然后每次需要动态添加视图坐标到Toast.So你需要获取视图的坐标。点击使用:
buttonView.getLocationOnScreen(location);
然后设置Toast的位置:
toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5,
location[1]-10);
答案 1 :(得分:0)
使用以下代码:
Toast toast= Toast.makeText(getApplicationContext(),
"Your string here", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
toast.show();