2013-01-22 49 views
8

Trước hết đây không phải là hoàn toàn đangĐặt vị trí động của Toast đến một Xem

@Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     Toast toast=Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT); 
     toast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0); 
     View view=toast.getView(); 
     switch(buttonView.getId()) 
     { 
      case R.id.chkRed: if(chkRed.isChecked()) 
      { 
           chkGreen.setChecked(false); 
           chkBlue.setChecked(false); 
           chkYellow.setChecked(false); 
           toast.setText("You Selected Red"); 
           toast.setGravity(Gravity.NO_GRAVITY,buttonView.getRight(), chkRed.getTop()); 
          //top does not align 
          //it align perfectly to right of checkbox 
           view.setBackgroundColor(Color.RED); 
      } 
          break; 
} 
} 

Vì vậy, Bây giờ, vấn đề là, tôi muốn hiển thị bánh mì nướng bên cạnh hộp kiểm, tôi đã cố gắng làm việc với setGravity(), nhưng nó chỉ không hoạt động và đã bị đánh và cố gắng trong thời gian dài, nhưng không có tiến bộ

Cách hiển thị bánh mì nướng bên cạnh hộp kiểm.

Trả lời

10

ok, cuối cùng tôi đã tìm ra cách để có được bánh mì nướng bên cạnh hộp kiểm này hay cách khác xem

1. Bạn cần phải nhận vị trí trên màn hình của xem, bởi

buttonView.getLocationOnScreen(location); 

cho tham khảo hơn, thấy getLocationOnScreen(int[])

2. Set trọng lực để bánh mì nướng bằng

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

điều quan trọng ở đây được đặt x-coordinate của bánh mì nướng để phải xem, ví dụ, buttonView.getRight() và nhận y phối hợp từ location[1], mà bạn nhận được từ getLocationOnScreen()

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     Toast toast=Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT); 
     toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0); 
     View view=toast.getView(); 
     int location[]=new int[2]; 
     buttonView.getLocationOnScreen(location); 
     switch(buttonView.getId()) 
     { 
      case R.id.chkRed: if(chkRed.isChecked()) 
      { 
           chkGreen.setChecked(false); 
           chkBlue.setChecked(false); 
           chkYellow.setChecked(false); 
           toast.setText("You Selected Red"); 
           toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5, location[1]-10); 
           view.setPadding(1, 1, 1, 1); 
           view.setBackgroundColor(Color.RED); 
      } 

     } 
    } 
+4

Câu trả lời này http: // stackoverflow .com/a/21026866/630833, có kích thước của Toast xem xét, đó là hữu ích cho tôi. – jayeffkay