包含布局的自定义Textview

时间:2014-11-18 09:34:55

标签: android android-layout include android-viewpager horizontal-scrolling

我的布局如下:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView
            android:id="@+id/logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ImageView
            android:id="@+id/logo_background"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/logos_background">
        </ImageView>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="5dp"
            android:layout_alignBottom="@+id/logo_background"
            >
            <TextView
                android:id="@+id/logoDetails"
                android:text="Test Logo details"
                android:textSize="15sp"
                android:layout_centerHorizontal="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
            <TextView
                android:id="@+id/stockQuantity"
                android:layout_centerHorizontal="true"
                android:textSize="20sp"
                android:layout_below="@+id/logoDetails"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"    
                android:text="x10"/>

        </RelativeLayout>
    </RelativeLayout>    
</RelativeLayout>

我需要在另一个布局中多次包含此布局,如下所示:

<HorizontalScrollView
    android:layout_below = "@+id/selectLayout"
    android:id="@+id/pager"
    android:scrollbars="none"
    android:layout_marginLeft="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <LinearLayout
        android:orientation="horizontal"
        android:layout_marginTop="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <include layout="@layout/viewpager_item_layout"/>
        <include layout="@layout/viewpager_item_layout"/>
        <include layout="@layout/viewpager_item_layout"/>
        <include layout="@layout/viewpager_item_layout"/>
        <include layout="@layout/viewpager_item_layout"/>
        <include layout="@layout/viewpager_item_layout"/>
        <include layout="@layout/viewpager_item_layout"/>
    </LinearLayout>
</HorizontalScrollView>

这给出了以下结果: enter image description here

问题是我需要访问每个<include>中的文本视图和图片视图。因此,徽标图像会有所不同,测试徽标的细节会有所不同,而且&#39; x10&#39;每个人都会有所不同,因为我希望从数据库填充它们。任何人都可以对此发光吗?

我打算为此使用视图寻呼机,但这不会起作用,因为它占用了屏幕的整个宽度和高度。

2 个答案:

答案 0 :(得分:5)

<include android:id="@+id/news_title"
         layout="@layout/viewpager_item_layout"/>

尝试它是否有帮助。

您可以这样访问:

View includedLayout = findViewById(R.id.news_title);
TextView insideTheIncludedLayout = (TextView )includedLayout.findViewById(R.id.logoDetails);

答案 1 :(得分:1)

将布局设置为include标签后,在您的代码中使用:

   View v = findViewById(R.id.your_layout_id);
   TextView tv = (TextView) v.findViewById(R.id.text_view_id);