Aşırı kaydırma kenarının ve aşırı kaydırma ışığının rengi nasıl değiştirilir veya Android sürümü 5.0 lolipopun beyaz rengi (varsayılan renk) nasıl değiştirilir?Aşırı kaydırma kenarının ve aşırı parlak ışığın rengi nasıl değiştirilir?
cevap
Aşırı kaydırma parlaklığı rengi, uygulamanızın tamamında android:colorPrimary
tarafından ayarlanan birincil renk değerini miras alır. Ancak farklı bir değer belirtmeniz gerekiyorsa, android:colorEdgeEffect
'u kullanın. LOLLIPOP
üzerinde
<style name="MyAppTheme" parent="***">
<item name="android:colorEdgeEffect">@color/my_color</item>
</style>
Bu özellik yalnızca API 21 ve üstü için kullanılabilir. – fractalwrench
Evet, soru budur. –
Not: android: colorPrimary', ActionBar veya Araç Çubuğunuzun rengini de ayarlar. Oysa “android: colorEdgeEffect” daha spesifiktir ve sadece ListViews, RecyclerViews vb. Için geçerlidir. –
kenar kızdırma colorPrimary
devralır. Görünüm oluşturulduktan sonra kenar parlaklığı rengi yalnızca yansıma ile değiştirilebilir. Bu, renkleri Palette
kullanarak dinamik olarak yüklediğinizde yararlı olabilir.
DÜZENLEME: TL; DR: buradan bütün dersleri indirin: https://github.com/consp1racy/android-commons/blob/master/commons/src/main/java/net/xpece/android/widget/XpEdgeEffect.java
PROGUARD AYAR: Eğer destek kitaplığından widget'lar bu kullanmak için gidiyoruz Eğer alan adlarını tutmak için gereken . bunu yapmak için hızlı bir şekilde (yine de savurgan rağmen) aşağıdaki gibidir:
-keepclassmembers class * extends android.view.View {
<fields>;
}
-keepclassmembers class android.support.v4.widget.EdgeEffectCompat {
<fields>;
}
aşağıdaki kodu ile yardımcı sınıf oluşturmak:
private static final Class<?> CLASS_SCROLL_VIEW = ScrollView.class;
private static final Field SCROLL_VIEW_FIELD_EDGE_GLOW_TOP;
private static final Field SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM;
private static final Class<?> CLASS_LIST_VIEW = AbsListView.class;
private static final Field LIST_VIEW_FIELD_EDGE_GLOW_TOP;
private static final Field LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM;
static {
Field edgeGlowTop = null, edgeGlowBottom = null;
for (Field f : CLASS_SCROLL_VIEW.getDeclaredFields()) {
switch (f.getName()) {
case "mEdgeGlowTop":
f.setAccessible(true);
edgeGlowTop = f;
break;
case "mEdgeGlowBottom":
f.setAccessible(true);
edgeGlowBottom = f;
break;
}
}
SCROLL_VIEW_FIELD_EDGE_GLOW_TOP = edgeGlowTop;
SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM = edgeGlowBottom;
for (Field f : CLASS_LIST_VIEW.getDeclaredFields()) {
switch (f.getName()) {
case "mEdgeGlowTop":
f.setAccessible(true);
edgeGlowTop = f;
break;
case "mEdgeGlowBottom":
f.setAccessible(true);
edgeGlowBottom = f;
break;
}
}
LIST_VIEW_FIELD_EDGE_GLOW_TOP = edgeGlowTop;
LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM = edgeGlowBottom;
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void setEdgeGlowColor(AbsListView listView, int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
EdgeEffect ee;
ee = (EdgeEffect) LIST_VIEW_FIELD_EDGE_GLOW_TOP.get(listView);
ee.setColor(color);
ee = (EdgeEffect) LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(listView);
ee.setColor(color);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void setEdgeGlowColor(ScrollView scrollView, int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
EdgeEffect ee;
ee = (EdgeEffect) SCROLL_VIEW_FIELD_EDGE_GLOW_TOP.get(scrollView);
ee.setColor(color);
ee = (EdgeEffect) SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(scrollView);
ee.setColor(color);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Güzel! Işıma rengini programatik olarak değiştirmenin bir yolunu arıyordum ve her cevap stili xml'de ayarlamaya bağlıydı. Seninki benim için bir sorun olmadan çalıştı ve şimdi statusbarcolor ve araç çubuğu için yaptığım gibi içeriğe bağlı olarak rengi dinamycally değiştirebilirim. Teşekkürler! – MrBrightside
Teşekkürler. güzel çalışıyor. ama ne 'RecyclerView' hakkında? – sajad
@sajad Kaydırma konteynerlerinin çoğunun üstesinden gelmek için kullandığım sınıf http://pastebin.com/TAujMUu9 Tek eksik olan 'HorizontalScrollView' olduğunu düşünüyorum. –
- 1. App Engine'in Aşırı Kotası sayfası nasıl değiştirilir?
- 2. Yöntem Aşırı ve Java
- 3. Scala, currying ve aşırı
- 4. Operatör aşırı yüklenmesi [] ve =
- 5. Aşırı çözünürlük
- 6. Yöntem aşırı yükleme ve polimorfizmi
- 7. Kalıtım ve yöntem aşırı yükleme
- 8. yeni aşırı ve opsiyonel argümanlar
- 9. Rust'ta aşırı klonlama nasıl önlenir?
- 10. Aşırı yükleme çatalı()
- 11. C++ aşırı yük [] dönüşümlü
- 12. Python'da aşırı yük() operatörü
- 13. Seekbar rengi nasıl değiştirilir?
- 14. php çıkarmadan aşırı boşluk
- 15. CodeIgniter'de İşlev Aşırı Yüklemesi
- 16. Aşırı yükleme yapılar - clang
- 17. Aşırı yüklenmiş işleç algılanamıyor
- 18. Aşırı yükleme fonksiyonu haskell
- 19. Dot 'aşırı yüklenemedi.' C++
- 20. Aşırı Yüklenen Dizeleri Kullanmak
- 21. Aşırı yüklenmiş işlev, üçlü
- 22. PHP işlevi aşırı yükleme nedir? aşırı Java gibi dillerde
- 23. Dize Değişmez Aşırı
- 24. == işlevinin aşırı yüklenmesi
- 25. F #: Aşırı yükleme işlevleri
- 26. WebPack aşırı yavaş
- 27. Aşırı yük kurucu?
- 28. Aşırı yüklü yöntem aşımı
- 29. PowerShell'de aşırı işlev yükleme
- 30. Ocaml'de Aşırı yükleme
[robot lolipop Scrollview kenar etki renk] (http olası yinelenen: //stackoverflow.com/questions/27104521/android-lollipop-scrollview-edge-effect-color) – alanv