2013-07-12 31 views
2

我有一个应用程序多个fragments,我想知道如何添加每个fragment不同的背景。我正在使用的布局具有可滚动的选项卡,它们都使用相同的xml文件。我也有一个MainActivity设置视图和adapter为每个fragment。我知道你可以使用带有android:background的xml文件或类似的东西来添加背景,并将其设置为主要活动中的视图,但我无法弄清楚如何对每个选项卡执行此操作。感谢您的任何帮助!将背景图片添加到单个片段

+0

当您创建这些选项卡片段时,请通过“Bundle”传递一个int值或其他值来指示目标背景。然后,您可以在'onCreateView()'方法中使用'getArguments()'来查看传入的值并设置正确的背景。 – Luksprog

+0

我不明白你的问题:你想改变片段或Tab上的布局?也许发布您的布局(或图像)会更有帮助。 – JJ86

+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);

,或者使用几个个XML与android:background

0

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

for (Fragment f : fragments) { 
    f.getView().setBackgroundColor ((new Random()).nextInt()); 
} 

PS:我从来没有使用过的片段,所以我的答案可能是错的。

+0

Hey Andrea,谢谢你的回答。你可以请看看我的问题http://stackoverflow.com/questions/21181193/changing-background-image-of-current-fragment-in-viewpager#comment31893915_21181193我有麻烦设置背景图像,当我做f.getView()。setBackgroundResource(R.drawable.image)它不会改变,同样,当我做f.getView()。getBackground()它返回null。 – Nazerke