我有一个TextView,它包含冗长的内容。这些textview是只读的,不提供滚动。因此,在textview中无法看到整个文本。现在我想在longClick事件中显示一个toast消息。但是Toast消息显示在屏幕底部。如何在选定的TextView下面显示它?
final Toast viewToast = Toast.makeText(getActivity(), packageId.getText().toString(), Toast.LENGTH_LONG);
packageId.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
viewToast.show();
return false;
}
});`
答案 0 :(得分:0)
您可以使用此方法在不同位置显示Toast:
customToast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
对于自定义位置,请浏览此网址
答案 1 :(得分:0)
如何在选定的TextView下面显示它?
要在TextView或任何视图下方显示Toast,请使用带有X和Y偏移的Toast.setGravity
方法:
int coordinates[] = new int[2];
textView.getLocationInWindow(coordinates);
int xOffset=coordinates[0]+getWidth()/2;
int yOffset=coordinates[1]+ getHeight;
viewToast.setGravity(Gravity.TOP|Gravity.LEFT,xOffset,yOffset);
viewToast.show();
根据您的要求,使用xOffset
和yOffset
更改活动窗口上Toast的位置。
答案 2 :(得分:0)
尝试自定义toast,
<ImageView android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp" />
<TextView android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF" />
Java代码
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
(ViewGroup) findViewById(R.id.toast_layouts));
ImageView image = (ImageView) layout.findViewById(R.id.image1);
image.setImageResource(R.drawable.android);
TextView text = (TextView) layout.findViewById(R.id.text1);
text.setText("Type your long message here");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();