将背景图像添加到单个片段

时间:2013-07-12 22:50:20

标签: android tabs android-fragments android-arrayadapter

我有一个多个fragments的应用,我想知道如何为每个fragment添加不同的背景。我使用的布局有可滚动的选项卡,它们都使用相同的xml文件。我还有一个设置视图的MainActivity和每个adapter的{​​{1}}。我知道您可以使用带有fragment的xml文件或类似的东西添加背景,并将其设置为主活动中的视图,但我无法弄清楚如何对每个选项卡执行此操作。谢谢你的帮助!

2 个答案:

答案 0 :(得分:7)

要向片段添加背景,您必须将其包装在某个容器中

<LinearLayout
        android:id="@+id/linearlayout01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ccc"
        android:layout_weight="1"
        android:orientation="vertical">
    <fragment android:name="com.example.simplefragmentexample.LayOutOne"
            android:id="@+id/frag_1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </LinearLayout>

如果您希望使用相同的xml文件,则应以编程方式设置图像 LinearLayout l = (LinearLayout) findViewById(R.id.linearlayout01); l.setBackground(Image);

或使用android:background的几个xmls。

答案 1 :(得分:0)

您可以使用Fragment getView()方法获取片段的根视图。然后,您可以使用View的setBackground()方法之一设置视图的背景。例如,为每个片段设置随机背景颜色:

for ( Fragment f : fragments ) {
    f.getView().setBackgroundColor ( (new Random()).nextInt() );
}
PS:我从未使用过碎片,因此我的回答可能是错误的。