2015-10-30 9 views
3

Я изучал Android Pickers, как описано here.Как сделать пользовательский флеш-файл для Android, который вписывается в другое представление?

Есть сборщики для полей времени, даты и числа, но, к моему большому удивлению, я обнаружил, что для основных строк нет универсального сборщика.

Я нашел несколько ресурсов, обсуждая, как повторно Цель NumberPicker использовать строки следующим образом:

Android picker widget for arbitrary strings

и

https://github.com/hotchemi/StringPicker/blob/master/library/src/main/java/hotchemi/stringpicker/StringPicker.java

Они выглядят многообещающими, но моя конечная цель заключается в том, чтобы мой сборщик строк был помещен внутри панели на моем основном представлении, а не появлялся над представлением. Мне нужно сделать это, потому что в верхней части моего представления есть объект, который модифицируется в зависимости от того, что выбрано в сборщике, и, следовательно, его нужно отображать в режиме реального времени, чтобы показать, как разные значения для данного свойства повлияют на его внешний вид.

Есть ли способ сделать это?

ответ

7

Вам просто нужно использовать NumberPicker без какой-либо библиотеки, которую вы можете реализовать. У меня также была такая же проблема, и я нашел решение для нее. Я использовал NumberPicker вот так, и он работает очень хорошо.

В picker_layout добавить сборщик номеров и показать, что макет по анимации на основной макет.

И в вашем классе использовать ...

<NumberPicker 
    android:id="@+id/numberPicker1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" /> 


numberPicker1= (NumberPicker) findViewById(R.id.numberPicker1); 
final String genders[] = { "unassessed", "Skipped", "Incorrect", "Correct", "1 mark" }; 

numberPicker1.setMinValue(0); 
numberPicker1.setMaxValue(genders.length - 1); 
numberPicker1.setDisplayedValues(genders); 
numberPicker1.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS); 

NumberPicker.OnValueChangeListener myValChangedListener = new NumberPicker.OnValueChangeListener() { 
@Override 
public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
    btnBar.setText("Value: " + genders[newVal]); 
} 
}; 

numberPicker1.setOnValueChangedListener(myValChangedListener); 

 Смежные вопросы

  • Нет связанных вопросов^_^