Bir arama çubuğum var, taşırken, 0 ile 200 arasındaki değerleri değiştirmek istiyorum. Bir TextView'im var, burada bu değerleri arama çubuğunu taşırken gösteriyorum. Ama o aralıktan her değere sahip olmak istemiyorum (0,1,2,3,4,5 ...), ama 10, 20, 30 ... var. Bu yüzden, arama çubuğunu hareket ettirdiğimde, 10,20,30,40 .... değerini 200 olarak görmek istiyorum. Birisi bana bunun nasıl yapılacağına dair bir ipucu veya örnek verebilir mi?Arama çubuğundaki adım değerleri değiştiriliyor mu?
cevap
deneyin
SeekBar seekBar = (SeekBar)layout.findViewById(R.id.seekbar);
seekBar.setProgress(0);
seekBar.incrementProgressBy(10);
seekBar.setMax(200);
TextView seekBarValue = (TextView)layout.findViewById(R.id.seekbarvalue);
seekBarValue.setText(tvRadius.getText().toString().trim());
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progress = progress/10;
progress = progress * 10;
seekBarValue.setText(String.valueOf(progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
setProgress(int)
İsterseniz çubuğunu
aramaya maksimum değerini ayarlamak için kullanılır arama çubuğu
setMax(int)
başlangıç değerini ayarlamak için kullanılır Arama çubuğunun sınırlarını ayarladıktan sonra onProgressChanged
yöntemindeki progressbar değerini kontrol edebilirsiniz. İlerleme, sınırdan küçük veya daha büyükse, ilerlemeyi tanımladığınız sınırlara ayarlayabilirsiniz. Aklıma
İlerleme değişikliğini izlemek için SeekBar.OnSeekBarChangeListener
'u kullanmalısınız. mseek.setMax(200)
numaralı telefonu arayın. Metin görünümünün güncellenip güncellenmeyeceğine karar vermek için mevcut değerde bir modülasyon işlemi yapın. kodunun altına
SeekBar.OnSeekBarChangeListener() {
void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (progress % 10 == 0) {
textview.setText(""+progress);
}
}
}
easieset yolu, basitçe tanımlıyor:
SeekBar yourSeekBar = (SeekBar)findViewById(R.id.yourSeekBarId);
yourSeekbar.setMax(20);
Sonraki, bu yöntemleri geçersiz kılmak (boş yöntemler de boş olsalar bile, gereklidir):
yourSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
if (progress >= 0 && progress <= sizeSeekBar.getMax()) {
String progressString = String.valueOf(progress * 10);
yourTextView.setText(progressString); // the TextView Reference
seekBar.setSecondaryProgress(progress);
}
}
}
});
Fikir, yalnızca arama çubuğu için 20 değer tanımlamak, ancak her zaman değeri 10 ile çarpmak ve bu değeri görüntülemek. Gerçekten 200 değere ihtiyacınız yoksa, 200 değeri kullanmanın bir anlamı yoktur. En az sayı için
+1. Başka bir konu için aradım, burada sona erdi, ama +1 –
hakettiğini düşündüm Bu, daha iyi bir çözüm gibi görünüyor. Bir sonraki numaraya nasıl atladığını seviyorum. Sayı statik iken ilerlemek garip görünüyor. –
, ilerlemenizde bir sapma belirleyebilirsiniz. Bu şekilde, kullanıcı minimum değerinizin altına giremez.
int offset = 10;
seekBar seekBar = (SeekBar)layout.findViewById(R.id.seekbar);
seekBar.setProgress(0);
seekBar.setMax(190); //with the offset, you need to adapt the max value
TextView seekBarValue = (TextView)layout.findViewById(R.id.seekbarvalue);
seekBarValue.setText(""+(seekBar.getProgress() + offset));
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progress += offset;
seekBarValue.setText(String.valueOf(progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
Ayrıca
public class CustomSeekBar extends AppCompatSeekBar {
int SEEKBAR_MULTIPLIER = 1;
public CustomSeekBar(Context context) {
super(context);
}
public CustomSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setSeekBarConfig(int SEEKBAR_MULTIPLIER, int SEEKBAR_MAX){
setMax(SEEKBAR_MAX);
this.SEEKBAR_MULTIPLIER = SEEKBAR_MULTIPLIER;
}
@Override
public int getProgress() {
return super.getProgress() * SEEKBAR_MULTIPLIER;
}
}
aşağıdaki gibi özel seekbar sınıfı belirlenerek bunu başarabilirsiniz Ve bunun yerine seekbar
ait CustomSeekBar eklemek gerekir xml biçiminiCustomSeekBar mCustomSeekBar = (CustomSeekBar) findViewById(R.id.customSeekBar);
mSeekBar.setSeekBarConfig(10,20);
takip ederek kullanabilirsiniz
<*.CustomSeekBar
com.quemb.qmbform.view:setSeekBarConfig="10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/seekBar" />
Böylece tüm App içinde özel seekBar tekrar tekrar tüm ekstra hesaplama ile yeniden kullanabilirsiniz.
- 1. Twitter api, adı değiştiriliyor mu?
- 2. ggplot faktörü renkleri değiştiriliyor mu?
- 3. String nesnesine karşı literal - prototip değiştiriliyor mu?
- 4. Soldan geçişe geçişli solBarButtonItem değiştiriliyor mu?
- 5. Tipik yazarlar tamamen varyantik şablonlarla değiştiriliyor mu?
- 6. SQL Server Profiler kullanımdan kaldırılıyor - Değiştiriliyor mu?
- 7. XMLHttpRequest.DONE değerleri ile ilgili sorun mu var?
- 8. Mongodb Pentaho Spoon'da Arama değerleri
- 9. lineer arama Diziler kontrol değerleri
- 10. matplotlib, adım animasyon adım
- 11. Sıklıkla adım adım basitleştirme?
- 12. Düğme Çubuğundaki Gezinti Çubuğundaki Düğme UIViewController gösterilmiyor
- 13. Arama işlevi çalışmıyor mu?
- 14. Arama çubuğundaki her sözcüğün arka plan rengini değiştirin
- 15. jQuery'nin adım adım işlevini genişletme
- 16. Adım adım JMS Bahar İlkesi
- 17. Emacs'te küçük harfli bir desen için adım adım nasıl arama yapılır?
- 18. Maven'de kaynak filtreleme, bağımlılıkları artifactId ile değiştiriliyor mu?
- 19. arama işlevini ui arama çubuğundaki metinle anahtar kelimeye hızlı bir şekilde yanıtlamanızı sağlar [hızlı]
- 20. FragmanSaveInstanceState üzerinde arama yapmıyor mu?
- 21. easy_install arama komutu sağlıyor mu?
- 22. JavaScript: Neden argüman değişkeni değiştiriliyor? Arguments` dizisi değiştiriliyor?
- 23. Perl programı adım adım nasıl çalıştırılır?
- 24. Uygulama dünyasına uygulama adım adım nasıl yüklenir?
- 25. Android uygulamasını google adım adım oynatmaya yükle ...?
- 26. caffe veri katmanı örnek adım adım
- 27. Beamer: Görüntüleri adım adım görüntüler olarak gösterme
- 28. Rust için adım adım etkileşimli hata ayıklayıcı?
- 29. Iex gözetim adım adım mı gidiyor?
- 30. Basit C++ ağ oluşturucu. Adım adım
Vay, bu sadece harika bir örnek! Her neyse, arama çubuğunun min değerini 10 olarak ayarlayabilir miyim? Max'i "seekBar.setMax (200)" diyerek ayarlayabilirim, min değeri yok.Bunun nasıl yapılacağı hakkında bazı fikirlerim var, ancak her seferinde hata alıyorum ( – lomza
Use seekBar.setProgress (10); – Dharmendra
arama çubuğunda 10'a set değerini ayarlamak için bu sorunu çözdüm. 10, ben hala 0 ayarlamak mümkün oldu ve ben bu seçeneği (böylece kullanıcı 10'dan daha az bir değer seçemezsiniz) yapmak istedim.Bunu yaptım ama ChangeListener bir 'if' ifadesini koyarak. – lomza