使用android.support.v4.app.ListFragment时,列表的背景颜色在滚动时变为白色;

时间:2012-07-25 13:01:25

标签: android android-layout arraylist android-listview android-listfragment

我正面临一个严峻的问题。我正在尝试在滚动时更改列表的背景颜色(透明),但无法执行此操作。我尝试通过xml的listView以及代码进行更改。但在两种情况下列表背景变为白色。我正在使用android.support.v4.app.ListFragment;和FragmentPagerAdapter。

我想更改列表滚动时间颜色更改。为此我正在使用以下代码。

public static class ArrayListFragment extends ListFragment {
    int mNum;
    /**
     * Create a new instance of CountingFragment, providing "num"
     * as an argument.
     */
    static ArrayListFragment newInstance(int num) {
        ArrayListFragment f = new ArrayListFragment();
        // Supply num input as an argument.
        Bundle args = new Bundle();
        args.putInt("num", num);
        f.setArguments(args);

        return f;
    }
    /**
     * When creating, retrieve this instance's number from its arguments.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mNum = getArguments() != null ? getArguments().getInt("num") : 1;
    }

    /**
     * The Fragment's UI is just a simple text view showing its
     * instance number.
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
        //v.setBackgroundResource(R.drawable.background);
        View tv = v.findViewById(R.id.text);

        ((TextView)tv).setText(frameName());


        return v;
    }

   // @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_checked, RishavArraylist() ));

    }

请告诉我如何在运行时更改滚动列表的背景?谢谢。

2 个答案:

答案 0 :(得分:14)

请查看Google的this blog post,特别是与XML相关的部分;

    android:cacheColorHint="#00000000"

答案 1 :(得分:3)

我们有很多选择来解决这个问题,您可以通过

等编程将背景设置为透明
yourlistview.setCacheColorHint(Color.TRANSPARENT); 

或通过xml

android:cacheColorHint="@android:color/transparent"