android 布局 填充,android:将视图填充到布局中

我添加了一个由LayoutInflater扩展到布局中的视图,然后更改了该视图的背景颜色,例如,从红色更改为蓝色.所有这些之后,我添加了一个由相同xml文件填充的新视图.布局,但我看到的背景颜色为蓝色,而不是原始颜色为红色.

这是测试代码:

public class InflateActivity extends Activity{

private LinearLayout mContainer;

private View view;

@Override

protected void onCreate(Bundle saveInstanceState) {

super.onCreate(saveInstanceState);

setContentView(R.layout.inflate_test);

mContainer = (LinearLayout)findViewById(R.id.inflate_container);

findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

view = LayoutInflater.from(InflateActivity.this).inflate(R.layout.expanded_record,mContainer,false);

mContainer.addView(view,2);

}

});

findViewById(R.id.change_color).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

view.setBackgroundColor(Color.BLUE);

}

});

}

}

我通过view.toString()获得了不同的ID.

我不知道为什么.

我想知道为什么我要对视图A进行一些更改,而用相同的xml文件填充且未更改的视图B会受到这些更改的影响.

实际上,我对视图A进行了许多更改,但是只有setBackgroundColor()会影响视图B.

xml文件的根视图是一个FrameLayout.其他布局如LinearLayout,RelativeLayout不会出现问题

解决方法:

我通过创建一个项目检查了您的代码.我正在使用Android Studio.我没有发现您提到的任何问题.请看一下我的代码,并尝试相应地更改您的代码.

主要活动:

public class MainActivity extends Activity {

private LinearLayout mContainer;

private View view;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mContainer = (LinearLayout)findViewById(R.id.inflate_container);

findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

view = LayoutInflater.from(MainActivity.this).inflate(R.layout.expanded_record,mContainer,false);

mContainer.addView(view,mContainer.getChildCount());

}

});

findViewById(R.id.change_color).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

view.setBackgroundColor(Color.BLUE);

}

});

}

主要XML:

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

android:id="@+id/inflate_container"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="vertical">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="vertical"

android:layout_margin="20dp">

android:text="add" android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/add"

android:clickable="true"/>

android:id="@+id/change_color"

android:clickable="true"

android:text="change_color" android:layout_width="wrap_content"

android:layout_height="wrap_content" />

以及我要夸大的XML

android:layout_width="fill_parent"

android:layout_height="10dp"

android:background="#000000"

android:layout_gravity="center">

这是我得到的结果

看到我可以添加黑色视图并将其更改为蓝色,然后再更改为黑色

标签:android

来源: https://codeday.me/bug/20191120/2044517.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值