2012-02-24 24 views
5

Tôi muốn khi tôi nhấp vào MainView, tôi muốn tạo cửa sổ mới chỉ nơi tôi có chạm.Cách nhận điểm Chạm (trên cùng và bên trái) bất kể tầm nhìn, cửa sổ trong Titanium

Nói ví dụ: tôi đã nhấp vào số top:50 left:200 thì cửa sổ mới của mình phải bắt đầu từ điểm đó chỉ.

Tôi muốn tạo một cái gì đó như Popover trong Titanium cho android. Có ai chỉ hướng dẫn tôi không?

Xin cảm ơn trước.

+0

bạn có nghĩa là cửa sổ bật lên sẽ xuất hiện khi nhấp vào một đối tượng từ điểm được nhấp không? Bạn có yêu cầu một số hoạt ảnh cho quá trình chuyển đổi này không? – Triode

+0

Có, tôi muốn trên bàn Xem bất cứ nơi nào tôi LONGPRESS một cửa sổ bật lên nên được tạo .... Nếu có hình động thì nó cũng sẽ tốt ... – DShah

+0

Cảm ơn DShah đã cung cấp một tiền thưởng ... –

Trả lời

1

Liên quan đến việc nhận tọa độ chạm cho chế độ xem cha mẹ, bạn nên đính kèm trình xử lý sự kiện vào chế độ xem gốc (hoặc cả hai nếu bạn không thể lấy nguồn và cần các hành động khác) vì nếu tôi sửa sự kiện chạm (hoặc bất kỳ sự kiện nào khác cho sự kiện có vấn đề) cũng nên truyền cho các khung nhìn cha/con. Sau đó, bạn chỉ có thể nhận được các giá trị e.source.tope.source.left khi bạn cần.

+0

Tôi có một View trong đó tôi có một TableView. Tôi đã đưa ra sự kiện vuốt trên Chế độ xem. và trên tableView tôi muốn đưa ra sự kiện LONGPRESS. Trên LongPress, chế độ xem bật lên của tôi sẽ được hiển thị tại điểm tiếp xúc của tôi. – DShah

+0

@DShah: bạn đã thử e.x, e.y chưa? –

1

Bạn có thể đặt theo cách này PopupWindow, sử dụng phương pháp showAtLocation của nó.

Điều này cho phép đặt cửa sổ ở vị trí mong muốn, so với chế độ xem chính của bạn. Và bạn biết người dùng đã nhấp vào chế độ xem chính của bạn ở đâu.

+0

Làm thế nào để sử dụng với Titanium ?? Bạn có thể vui lòng hướng dẫn cho tôi?? – DShah

+0

Nếu bạn đọc câu hỏi cẩn thận, tôi đã yêu cầu cụ thể cho Titanium chứ không phải android ... – DShah

3

xem xét bạn có một cửa sổ thắng thats sẽ bắn sự kiện click như thế:

win.addEventListener('click',function(e){ 
     var myPopUp = createPopUp({ 
      left: e.x, 
      top: e.y 
     }); 
     myPopUp.open(); 
    }); 

popup của bạn có thể được tạo ra như thế:

createPopUp = function(_args){ 
     var popup = Titanium.UI.createWindow({ 
       backgroundColor: 'red', /* a backgroundImage could be better */ 
       height: '250dp', 
       width: '250dp', 
       top: _args.top, /* manually adjusted */ 
       left: _args.left, 
       opacity: 0.7 /* for a nice transparency*/ 
     }); 

     return popup; 
    }; 

làm việc này tại Android và iPhone . các giá trị hàng đầu có vẻ hơi không chắc chắn nhưng nhìn chung nó hoạt động.