android中关于如何动态改变include引入的布局的问题

      其实在android中,并没有include的相关类。虽然include可以看做是一个View,但在java代码中并不能直接对其的属性layout进行设置。如果要想动态地改变include里面的内容,其实可以通过另外一种方式。

     在<LinearLayout>中写入多个include,并设置每个include的id。在代码中将include看做是一个View,并设置其的visibility属性值。注意的是,如果设置某个include不可见,只能使用visibility(View.GONE),不能使用visibility(View.invisibility),他们两者是不同的。View.invisibility只是设置改控件不可见,但在布局文件中的位置还存在,View.GONE不仅控件不可见,而且在布局中的位置会被其后面的控件所替代。

关键代码如下:

 <LinearLayout
        android:id="@+id/energy_content"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="7dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="15dp"
        android:orientation="vertical"
        android:layout_weight="7">
        <include
           android:id="@+id/include_changeOne"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:visibility="visible"
           layout="@layout/change_one"/>
        <include
           android:id="@+id/include_histogram"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:visibility="visible"
           layout="@layout/histogram"/>
        <include
           android:id="@+id/include_stick"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:visibility="visible"
           layout="@layout/stick"/>
    </LinearLayout>

   View include_changeOne,include_histogram,include_stick;

 include_changeOne = findViewById(R.id.include_changeOne);
  include_histogram = findViewById(R.id.include_histogram);
  include_stick = findViewById(R.id.include_stick);

 

if(v==indexOne) {
    include_changeOne.setVisibility(View.VISIBLE);
      }
   if(v==indexTwo) {
    include_changeOne.setVisibility(View.GONE);
    include_histogram.setVisibility(View.VISIBLE);
    //include_stick.setVisibility(1);
   }
   if(v==indexThree){
    include_changeOne.setVisibility(View.GONE);
    include_histogram.setVisibility(View.GONE);
    include_stick.setVisibility(View.VISIBLE);
   }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值