Tôi đã làm việc của Android SwipeRefreshLayout và đang cố gắng tùy chỉnh màu sắc trên tất cả các kéo để làm mới trong suốt ứng dụng. Để thực hiện theo nguyên tắc DRY, tôi đã cố gắng di chuyển các màu sắc mong muốn để array.xml như sau:Làm thế nào để vượt qua mảng int của id tài nguyên màu sắc từ array.xml để SwipeRefreshLayout.setColorSchemeResources
<resources>
<array name="swipeRefreshColors">
<item>@color/pink</item>
<item>@color/green</item>
</array>
</resources>
Tuy nhiên, khi tôi cố gắng và nhập chúng vào các swipe để làm mới:
swipeRefreshLayout.setColorSchemeResources(R.array.swipeRefreshColors);
tôi nhận được một Tài $ NotFoundException:
android.content.res.Resources$NotFoundException: Resource ID #0x7f060001
at android.content.res.Resources.getValue(Resources.java:1233)
at android.content.res.Resources.getColor(Resources.java:887)
at android.support.v4.widget.SwipeRefreshLayout.setColorSchemeResources(SwipeRefreshLayout.java:477)
tôi đã thử một vài điều như subclassing mã SwipeRefreshLayout và cứng mã hóa màu sắc đó, nhưng nó chắc chắn là một hack. Có một cách để tham chiếu một mảng màu từ Hoạt động để tùy chỉnh nó.
Bất kỳ trợ giúp nào sẽ được đánh giá rất nhiều!
Cảm ơn điều này đã giúp rất nhiều, tôi đã thử điều này trong kotlin và có lỗi nói rằng một Int là cần thiết thay vì IntArray. Những gì cố định này cho tôi đã được thêm một ngôi sao trước khi biến mảng như vậy, '* swipeRefreshColors', nếu bạn khởi tạo biến ở nơi khác. Nếu không, tôi đoán nó sẽ chỉ là một 'setColorSchemeColors (* ...' :) – nmu