我可以在 ViewFlipper 中设置 contentView 吗?

发布于 2024-09-17 15:07:39 字数 1823 浏览 7 评论 0原文

我有一个包含布局的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘴硬脾气大 2024-09-24 15:09:06

您可以通过两种方式执行此操作:

  1. 将相应的类实例附加到要操作的视图或布局。如果您只想使用常规调用、设置 OnClickListeners 等,这就足够了:

    LinearLayout layoutChart = (LinearLayout)findViewById(R.id.LinearLayoutChart);

  2. 如果您需要覆盖默认类行为(即子类),请创建一个扩展类:

    公共类 LinearLayoutChart 扩展 LinearLayout {
    ...}

确保实现所有父构造函数(即使只是传递给调用 super...),尤其是那些采用属性的构造函数。

在扩展类中实现您的自定义代码。

然后,编辑您的布局 xml 并将 LinearLayout 标记和结束标记替换为您的特殊类的完全限定类名(包括其包名称)

<com.mycompany.mypackage.LinearLayoutChart>
<!-- layout definition as before -->
</com.mycompany.mypackage.LinearLayoutChart>

这将使布局膨胀器实例化您的类而不是库存类,因此您可以覆盖受保护的方法等。

You can do this in two ways:

  1. 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);

  2. 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

<com.mycompany.mypackage.LinearLayoutChart>
<!-- layout definition as before -->
</com.mycompany.mypackage.LinearLayoutChart>

This will make the layout inflater instantiate your class instead of the stock one, so you can override protected methods etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文