如何在Android中设置Toast的宽度?

3

1
我认为Toast是安卓的默认属性。 - Siten
1
如果你发现问题的答案有用,应该接受它们(看到那里有一个勾号),并使用点赞。这将帮助你获得更多的答案。 - Rishabh
@Rishabh "我已经知道了 :) 但是你的回答没有起作用..." - Nital
3个回答

16

使用

Toast t = Toast.makeText(this, "Hello", Toast.LENGTH_SHORT);
t.setGravity(Gravity.FILL_HORIZONTAL, 0, 0);

请展示我这里的方法:http://developer.android.com/reference/android/widget/Toast.html ... 我一定是瞎了。 - Selvin
2
我们如何使用这个选项将Toast的宽度更改为给定的宽度?这个选项只会让Toast填充父容器。 - Selvin
1
这会使吐司填满整个宽度,我该如何给它留出边距,以便它不会触碰到两侧? - nosmirck
创建一个自定义布局,其中包含以下层次结构:线性布局->线性布局->文本视图,并在第二级线性布局中设置边距和吐司消息背景。 - Sushant Bhatnagar

6

我使用以下方法来设置toast的宽度和高度。

如何设置toast的宽度和高度

CancelProgressDialog.java

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class CancelProgressDialog extends Activity {

    ProgressDialog myProgressDialog = null;

    @Override
    public void onCreate(Bundle icicle) {

        super.onCreate(icicle);

        /* Create a very simple button */

        Button b = new Button(this);

        this.setContentView(b);

        b.setText("Show ProgressBar...");

//      b.setOnClickListener(myProgressBarShower);
        Context context = getApplicationContext();

        LayoutInflater inflater = getLayoutInflater();

        View toastRoot = inflater.inflate(R.layout.customtoast, null);
        TextView tv = (TextView) toastRoot.findViewById(R.id.toasttext);
        tv.setWidth(200);
        tv.setHeight(100);

        Toast toast = new Toast(context);

        toast.setView(toastRoot);
        toast.show();
//      toast.setText("I am toast");
        toast.setDuration(Toast.LENGTH_LONG);


    }
}

customtoast.xml

<?xml version="1.0" encoding="utf-8"?>


<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="I am toast"
    android:textColor="#000000"
    android:id="@+id/toasttext"
    android:background="#ffffff" />

感谢Deepak

谢谢Deepak,我已经使用customize_toast完成了它...请看我的更新。 - Nital
我遇到了同样的问题,但我有一张图片和一个TextView,所以仅仅设置TextView的尺寸是不起作用的。 - EtienneSky

1

您可以将其包装在另一层布局中,它就会起作用。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:id="@+id/container"
    android:background="@color/white">

    <!-- customize your width and height here -->
    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:orientation="vertical"
        android:gravity="center">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/ic_check_box"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/message"/>
    </LinearLayout>
</LinearLayout>

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