我可以在 ViewFlipper 中设置 contentView 吗?
我有一个包含布局的 ViewFlipper。
有没有办法连接一个类来单独管理每个布局?
有点像 setContentView(R.layout.main);
但我不确定如何在代码中引用 3 种不同的布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" >
<ListView android:layout_width="wrap_content" android:id="@+id/ListView" android:layout_height="220dp"></ListView>
<ViewFlipper android:id="@+id/ViewFlipper" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:id="@+id/LinearLayoutST" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutChart" android:layout_height="fill_parent" android:layout_width="fill_parent">
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 2"></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutDetails" android:layout_height="fill_parent" android:layout_width="fill_parent">
<TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 3"></TextView>
</LinearLayout>
</ViewFlipper>
</LinearLayout>
I have a ViewFlipper that contains Layouts.
Is there a way I can hook up a Class to manage each layout seperately?
Kind of like setContentView(R.layout.main);
but I'm not sure how to reference the 3 different layouts in code.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" >
<ListView android:layout_width="wrap_content" android:id="@+id/ListView" android:layout_height="220dp"></ListView>
<ViewFlipper android:id="@+id/ViewFlipper" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:id="@+id/LinearLayoutST" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon"></ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutChart" android:layout_height="fill_parent" android:layout_width="fill_parent">
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 2"></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayoutDetails" android:layout_height="fill_parent" android:layout_width="fill_parent">
<TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 3"></TextView>
</LinearLayout>
</ViewFlipper>
</LinearLayout>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过两种方式执行此操作:
将相应的类实例附加到要操作的视图或布局。如果您只想使用常规调用、设置 OnClickListeners 等,这就足够了:
LinearLayout layoutChart = (LinearLayout)findViewById(R.id.LinearLayoutChart);
如果您需要覆盖默认类行为(即子类),请创建一个扩展类:
公共类 LinearLayoutChart 扩展 LinearLayout {
...}
确保实现所有父构造函数(即使只是传递给调用 super...),尤其是那些采用属性的构造函数。
在扩展类中实现您的自定义代码。
然后,编辑您的布局 xml 并将 LinearLayout 标记和结束标记替换为您的特殊类的完全限定类名(包括其包名称)
这将使布局膨胀器实例化您的类而不是库存类,因此您可以覆盖受保护的方法等。
You can do this in two ways:
Attach a corresponding class instance to the view or layout you want to manipulate. This is sufficient if you just want to use regular calls, set OnClickListeners etc:
LinearLayout layoutChart = (LinearLayout)findViewById(R.id.LinearLayoutChart);
If you need to override default class behaviour (i.e. subclass), create an extended class:
public class LinearLayoutChart extends LinearLayout {
...}
Make sure to implement all parent constructors (even if just passing on to calling super...), especially the ones that take the attributes.
Implement your customized code in the extension class.
Then, edit your layout xml and replace the LinearLayout tag and end tag with the fully qualified class name of your special class including its package name
This will make the layout inflater instantiate your class instead of the stock one, so you can override protected methods etc.