将textview的冗长内容显示为toast消息android

时间:2016-05-12 05:15:36

标签: android

我有一个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;
        }
    });`

3 个答案:

答案 0 :(得分:0)

您可以使用此方法在不同位置显示Toast:

customToast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);

对于自定义位置,请浏览此网址

For custom position please go through this link

答案 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();

根据您的要求,使用xOffsetyOffset更改活动窗口上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();