布局名称为 bottom.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="55dp"
android:background="@color/base_color_text_white"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/id_main_pager"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:clickable="true"
android:gravity="center"
android:onClick="onMainPager"
android:orientation="vertical" >
<ImageButton
android:id="@+id/id_main_pager_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:clickable="false"
android:contentDescription="@string/app_name"
android:src="@drawable/bottom_main_pager_an" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_pager" />
</LinearLayout>
.....
</LinearLayout>
我想在代码里动态改变布局的背景颜色,代码如下:
View in = LayoutInflater.from(this).inflate(R.layout.bottom, null);
in.setBackgroundColor(Color.BLUE);
有两种原因
1 填充完的view (in)setContentView()中是否有用到
2 setBackgroundColor参数问题
View in = LayoutInflater.from(this).inflate(R.layout.bottom, null);返回的View(in)是一个新的对象,跟你setContentView()中layout引入的不是同一个对象。
应该使用findViewByID的方式取出再修改背景。