您的位置:首页 > 移动开发 > Android开发

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

2014-01-24 09:54 381 查看
其实在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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: