【问题标题】:Set Toast gravity top left in any textview android在任何textview android中设置Toast重力左上角
【发布时间】:2015-10-22 05:25:47
【问题描述】:

我想在我的应用程序的任何文本视图中将我的 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();

  }
}

当我运行上面的代码时,toast 每次都显示在屏幕顶部,尤其是 textview,见下图。

最初的两个文本视图屏幕

当我点击 second textview 我得到这个 toast 位置

知道如何解决这个问题吗?

【问题讨论】:

  • 您不能在可见性消失的情况下将 Toast 之类的自定义视图放入 xml 中? & 然后当你想用所需的文本向 View.Visible 显示 toast setvisibility ?

标签: android gravity android-toast android-gravity


【解决方案1】:

您需要做的就是根据textview在屏幕上的位置来管理Toast的位置。然后您需要每次将视图的坐标动态添加到您的Toast中。所以您需要获取视图的坐标,即点击使用:

buttonView.getLocationOnScreen(location);

然后设置Toast的位置:

toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5, 
location[1]-10);

以上内容仅供参考。更清晰和描述性的想法请参阅ThisThis

【讨论】:

    【解决方案2】:

    使用下面的代码:

    Toast toast= Toast.makeText(getApplicationContext(), 
    "Your string here", Toast.LENGTH_SHORT);  
    toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
    toast.show();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 2021-05-25
      • 2021-12-18
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多