- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi có một dự án trong Visual Studio 2015 với ListView
Dự án di động, có chức năng sau làm mới dữ liệu
Đã điền một số dữ liệu thông qua lệnh gọi API:
async Nhiệm vụ làm mớiData()
{
myListView.BeginRefresh();
var apiCallResult = đang chờ App.Api.myApiGetCall();
myListView.ItemsSource = apiCallResult;
myListView.EndRefresh();
}
làm mớiData()
gọi điện
ghi đè được bảo vệ void OnAppearing()
{
base.OnAppearing();
làm mớiData();
}
Mọi thứ đều hoạt động tốt ngoại trừ trên Android, chỉ báo làm mới không hiển thị khi trang được tải lần đầu. Kết thúc Làm mới()
dừng lại hoặc biến mất. Trang này nằm ở Trang theo thẻ
, để tôi có thể chuyển đến một tab khác rồi quay lại trang, đồng thời chỉ báo làm mới bắt đầu và dừng bình thường khi lệnh gọi API của tôi hoàn tất.
Tại sao quá trình làm mới không dừng khi trang được tải lần đầu trên Android? Bất kỳ trợ giúp sẽ được đánh giá rất cao.
Lưu ý: Tính năng này hoạt động tốt khi tôi chạy trên iOS.
Những gì tôi đã thử cho đến nay:
Sẽ myListView.BeginRefresh()
Thay thế bằng myListView.IsRefreshing = true
và sẽ myListView.EndRefresh()
Thay thế bằng myListView.IsRefreshing = false
sử dụng Device.BeginInvokeOnMainThread(() => //cập nhật danh sách và endRefresh})
.
sử dụng async void làm mớiData()
thay vì async Nhiệm vụ làm mớiData()
.
câu trả lời hay nhất
Cá nhân tôi, khi tôi Trình xây dựng trang Tôi gặp phải sự cố này khi bắt đầu làm mới ListView và dừng nó sau khi tải dữ liệu. Đôi khi (thường xuyên)Xamarin.Forms ListView
Hoạt ảnh làm mới sẽ không bị hủy.
Tôi tin rằng bạn đang sử dụng Android VuốtLàm mớiBố cục
Một vấn đề khá phổ biến gặp phải khi setRefreshing(sai)
Dừng hoạt ảnh làm mới sau khi gọi nó. Các nhà phát triển Android gốc sử dụng các phương pháp sau:
SwipeRefreshLayout.post(new Runnable() {
@Ghi đè
công khai void run() {
mSwipeRefreshLayout.setRefreshing(làm mới);
}
});
Điều thú vị là Xamarin.Forms đặt trạng thái làm mới ban đầu (mã số); tuy nhiên, điều đó là không đủ. Bạn cần một trình kết xuất tùy chỉnh:
lớp công khai ExtendedListViewRenderer: ListViewRenderer
{
///
/// Bố cục làm mới bao bọc ListView gốc.
///
riêng tư SwipeRefreshLayout _refreshLayout;
public ExtendedListViewRenderer(Android.Content.Context context): base(context)
{
}
ghi đè được bảo vệ void Vứt bỏ (xử lý bool)
{
nếu (xử lý)
{
_refreshLayout = null;
}
base.Dispose(xử lý);
}
ghi đè được bảo vệ void OnElementChanged(ElementChangedEventArgs e)
{
base.OnElementChanged(e);
_refreshLayout = (SwipeRefreshLayout)Control.Parent;
}
ghi đè được bảo vệ void OnElementPropertyChanged(người gửi đối tượng, PropertyChangedEventArgs e)
{
if (e.PropertyName == ListView.IsRefreshingProperty.PropertyName)
{
// Đừng gọi phương thức cơ sở: chúng tôi đang xử lý nó một cách thủ công
UpdateIsRefreshing();
return;
}
base.OnElementPropertyChanged(người gửi, e);
}
///
/// Cập nhật trạng thái hoạt ảnh SwipeRefreshLayout tùy thuộc vào phần tử IsRefreshing
/// tài sản.
///
khoảng trống được bảo vệ UpdateIsRefreshing()
{
// Tôi e rằng phương thức này có thể được gọi sau khi ListViewRenderer bị loại bỏ
// Vì vậy, hãy tạo một tham chiếu mới cho phiên bản SwipeRefreshLayout
SwipeRefreshLayout làm mớiLayoutInstance = _refreshLayout;
nếu (refreshLayoutInstance == null)
{
return;
}
bool isRefreshing = Element.IsRefreshing;
làm mớiLayoutInstance.Post(() =>
{
RefreshLayoutInstance.Refreshing = isRefreshing;
});
}
}
Về C# - Làm mới chương trình ListView của Xamarin Forms không dừng trên Android khi tải trang, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/42165245/
Đã thử sử dụng trình chỉnh sửa biểu mẫu được tích hợp vào QTCreator nhưng ngay cả khi tôi đặt plugin vào QtCreator.app/Contents/MacOS/designer thì nó cũng không hiển thị. Tuy nhiên, cùng một tệp dylib hoạt động độc lập
Trong ví dụ mã này. Điều gì sẽ được đọc sau "this.method2();"? Nó có chuyển sang phương thức 2() trước khi trả về Giá trị trả về không? phương thức int công khai1(int returnV
Dự án của tôi có các phần phụ thuộc được định cấu hình thông qua gradle. Tôi muốn thêm các phần phụ thuộc sau: nhóm biên dịch: 'org.restlet.jse', tên: 'org.restlet.ext.apispark', v
Tôi sẽ chuyển phần mềm quản lý khách hàng trên Windows sang phần mềm trên Web. Tôi thấy rằng polymer có thể là một lựa chọn. Tuy nhiên, để sử dụng, chúng tôi không thể tìm thấy thành phần polymer với Chế độ xem bảng, menu thả xuống
Có một thư mục trong thư mục dự án của tôi Dự án, chẳng hạn như thư mục ED, khi tôi chỉ định trong Eclipse nơi tìm các tệp tôi viết File file = new File("ED/text.txt");
Đây là điều kỳ lạ, nó hoạt động: $('#box').css({"backgroundPosition": "0px 250px"}); nhưng nó không hoạt động, nó chỉ không thay đổi vị trí: $('# hộp') .animate
Câu hỏi này đã có câu trả lời ở đây: Tại sao OR làm tròn số trong Javascript? (3 câu trả lời) Đã đóng 5 năm trước. Hướng dẫn JavaScript của Mozilla
Câu hỏi này đã có câu trả lời ở đây: Hàm strcmpi có trong thư viện tiêu chuẩn C của ISO không? (3 câu trả lời) Đã đóng cửa 8 năm trước. Tôi có một câu hỏi tại sao
Tôi hiện đang sử dụng gói lưu trữ được chia sẻ và tôi không chắc nó đang sử dụng phiên bản MySQL nào, nhưng có vẻ như nó không hỗ trợ loại DATETIMEOFFSET. Có phiên bản MySQL nào hỗ trợ DATETIMEOFFSET không? Hoặc có kế hoạch
Khi nghiên cứu Seam 3, tôi phát hiện ra rằng Seam Solder cho phép áp dụng chú thích @Named cho các gói - trong trường hợp này, tất cả các hạt trong gói sẽ tự động được đặt tên như thể chúng được @Named. Tôi không thấy
Tôi biết rằng .append đôi khi sẽ tăng dung lượng của mảng và tạo thành một bản sao mới của mảng, nhưng .removeLast sẽ đảo ngược điều này và giảm dung lượng của mảng bằng cách sao chép sang một mảng mới nhỏ hơn? Câu trả lời tốt nhất là không (hoặc ít nhất nếu có thì đó là một lỗi
Thật khó để nói những gì để hỏi ở đây. Câu hỏi không rõ ràng, mơ hồ, không đầy đủ, quá rộng hoặc hùng biện và không thể trả lời hợp lý ở dạng hiện tại. Để được trợ giúp làm rõ vấn đề này để có thể mở lại, hãy truy cập trung tâm trợ giúp Đóng 1.
Công cụ xác định hàm noException có nhằm mục đích tăng hiệu suất hay không, vì có thể không có mã trong đối tượng được tạo để ghi lại các ngoại lệ, do đó, nó phải được thêm vào các khai báo và định nghĩa hàm bất cứ khi nào có thể? Lần đầu tiên tôi nghĩ đến một trình bao bọc cho các đối tượng có thể gọi được, trong đó không có ngoại lệ nào có thể tạo ra
Tôi đang sử dụng Angularjs 1.3.7 và mới phát hiện ra rằng Promise.all không cập nhật Chế độ xem Angularjs sau khi phản hồi thành công, trong khi $q.all thì có. Vì Lời hứa được bao gồm trong bản gốc
Gần đây tôi đã tìm thấy mã JavaScript này: Math.random() * 0x1000000 10.12345 10.12345 >> 0 10 > 10.12345 >>> 0 10 Tôi sử dụng
Tôi đang viết một thư viện vectơ đồ chơi (vật lý) và tôi đang gặp phải một vấn đề trong đó GHC khẳng định rằng các hàm phải có Integer. là kiểu của họ. Tôi muốn nhân vectơ với vectơ cũng như đại lượng vô hướng (chỉ sử dụng * ), mặc dù điều này có thể đạt được bằng cách chỉ sử dụng Vector
Hàm mail() của PHP gửi thư tốt, nhưng Swift_MailTransport của Swiftmailer không hoạt động!
Tôi đã thử kết xuất dữ liệu của mình qua tập lệnh php nhưng không có dòng lệnh. Vì vậy, tôi đã tạo tệp .sql của mình bằng cách sử dụng tập lệnh này và sau đó tôi đã thử sử dụng tập lệnh của mình: $link = mysql_connect($host, $u
Sử dụng thư viện chuẩn sqlite3 trong Python 2.6.4, truy vấn sau chạy tốt trên dòng lệnh sqlite3: select đoạnid, node_t, start, number,title
Gần đây tôi đã tìm thấy mã JavaScript này: Math.random() * 0x1000000 10.12345 10.12345 >> 0 10 > 10.12345 >>> 0 10 Tôi sử dụng
Tôi là một lập trình viên xuất sắc, rất giỏi!