setCacheColorHint для списочных фрагментов - PullRequest
5 голосов
/ 29 ноября 2011

Я использую библиотеку совместимости Android, и у меня возникают некоторые проблемы с фрагментами списков, использующими не сплошной фон.Проблема описана для этой ссылки , но вызов setCacheColorHint для this.listView () не имеет никаких последствий.Кто-нибудь имеет представление о том, что происходит?

<fragment class="com.mypackage.MyFragment"
android:id="@+id/my_fragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

и внутри класса фрагмента, который является ListFragment, у меня

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {

    getListView().setCacheColorHint(android.R.color.transparent);
    super.onViewCreated(view, savedInstanceState);
}

Спасибо,

Ответы [ 2 ]

9 голосов
/ 12 января 2012

Вам нужно добавить getListView().setCacheColorHint(Color.TRANSPARENT) в onActivityCreated метод вместо onViewCreated

0 голосов
/ 29 ноября 2011

Хорошо, я думаю, что нашел способ заставить это работать.Просто позволяя фрагменту раздувать пользовательский макет, вместо того, чтобы использовать его самостоятельно.

Пользовательский макет просто содержит ListView.

Я прикрепляю макет и метод onCreateView здесь, на случай, если он может кому-то помочь:

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

    <ListView android:id="@android:id/list" 
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent"
              android:listSelector="@android:color/transparent"
              android:cacheColorHint="#00000000" >
    </ListView>
</LinearLayout>

А теперь:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) 
{
    View res = inflater.inflate(R.layout.generic_list_layout, container, false);
    return res;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...