getRootView()不起作用

时间:2013-01-10 14:41:31

标签: android android-layout

这是我的xml文件:

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

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

现在在我的代码中我想改变窗口的背景颜色,我这样做:

ListView listview = (ListView) findViewById(android.R.id.list);
View root = listview.getRootView();
root.setBackgroundColor(Color.parseColor("#bdbdbd"));

如果我理解正确,这应该改变listview的父级的背景颜色(在这种情况下,LinearLayout)。但是这不起作用,我做错了什么?

2 个答案:

答案 0 :(得分:3)

我觉得你很困惑,getRootView()不会让你看到LinearLayout,而是那个视图的父级。见this other question。您应该使用listview.getParent()代替;请注意,它需要进行铸造。

答案 1 :(得分:1)

尝试使用getParent()代替getRootView()来获取周围LinearLayout的实例..