Выбираемый TextView в ListView (анимация отсутствует)

1

Я создал ListView с пользовательским адаптером, чтобы у меня есть флажок (невидимый в то время) и TextView для отображения некоторого текста.

Теперь я хочу иметь красивую анимацию при выборе элемента в Списке (Фон будет синим на время касания элемента). Это возможно?

Я уже добавил OnLongTouchListener, и он работал, но без анимации!

Было бы здорово получить некоторую помощь :)

Макет-XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <CheckBox
        android:id="@+id/list_checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:visibility="gone"
        android:text="" 
        android:focusable="false"
        android:clickable="false">
    </CheckBox>

    <TextView
        android:id="@+id/list_text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text=""
        android:clickable="true"
        android:longClickable="true" >
    </TextView>

</LinearLayout>

Java-код:

private class CommunityListAdapter extends ArrayAdapter<Community> {

    private List<Community> items;
    private Context context;

    public CommunityListAdapter(Context context, List<Community> communities) {
        super(context, R.layout.list_item, communities);
        this.items = communities;
        this.context = context;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.list_item, null);
        }

        Community item = items.get(position);
        if(item != null) {
            TextView textView = (TextView) view.findViewById(R.id.list_text);
            if(textView != null) {
                textView.setText(item.getName());
                textView.setOnLongClickListener(new OnLongClickListener() {

                    public boolean onLongClick(View view) {
                        startActionMode(new MultiChoiseCABListener());
                        Toast.makeText(context, "TEST", 10).show();
                        return false;
                    }

                });
            }
        }

        return view;
    }
}
  • 0
    Пожалуйста, отправьте код ...
  • 0
    Я отредактировал Вопрос с некоторым кодом внутри!
Теги:
android-textview
android-layout
android-listview

2 ответа

0

Создайте сжатое состояние xml в своих чертежах, в которых вы устанавливаете разные растровые изображения для отображения в разных состояниях нажатия, и установите этот xml в качестве фона основного макета.

example state xml.

list_item_bg_state.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item  android:state_pressed="true" android:drawable="@drawable/blue_bg" />
    <item android:drawable="@drawable/white_bg"/>
</selector>

где blue_bg и white_bg - два изображения.png в ваших чертежах.

примечание выше xml должно находиться в вашей папке drawables. Теперь установите этот xml в качестве фона основного макета элемента списка. как,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_item_bg_state"
    android:orientation="horizontal" >
</LinearLayout>

привет, Акиф

  • 0
    К сожалению, это не работает для меня! Стандартный фон работает без проблем, но нажатие ничего не меняет!
0

Вы не определили анимацию, определите анимацию и свяжетесь с этим представлением.

        Animation a = new AlphaAnimation(1.00f, 0.00f);
        a.setDuration(1000);
        YOURTEXTVIEW.startAnimation(a);
  • 0
    Что это обозначает? Можете ли вы дать мне ссылку на учебник или документацию? Извините, но я только начал разрабатывать для Android и не могу найти его.
  • 0
    Я добавил инструкции ... Пожалуйста, примите ответ, если это поможет

Ещё вопросы

Сообщество Overcoder
Наверх
Меню