2013-02-12 74 views
0

請原諒我,如果這是一個簡單的問題,但我是Android開發新手,這個問題一直困擾着我。如何給一個視圖充氣

我有一個「基本」佈局文件,其中包含一個RelativeLayout和一個com.devspark.sidenavigation.SideNavigationView從this library

然後,我有一個ViewPager的活動,它將其他佈局(包含ListViews和progressBars)膨脹到這裏。我的問題是,儘管我嘗試並做到了,但SideNavigationMenu總是出現在誇大的列表視圖後面。我不確定發生了什麼問題,我迷失在佈局中。有沒有人有任何指針?

這是我的 「鹼」 的佈局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".NewNews" 
    tools:ignore="MergeRootFrame"> 

<com.devspark.sidenavigation.SideNavigationView 
    android:id="@+id/side_navigation_view_news" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clipChildren="false"/> 

</RelativeLayout> 

並且被充氣時, 「子」 -layouts之一的一個示例:預先

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

<eu.erikw.PullToRefreshListView 
    android:id="@+id/listView_all" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@android:color/transparent"/> 

<ProgressBar 
    android:id="@+id/progressBar_all" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" /> 

</FrameLayout> 

由於

回答

3

相對佈局不支持圖層。

視圖按照它們添加到佈局的順序放置在彼此的頂部。

例如

  • 添加viewA到的RelativeLayout
  • 添加viewB到的RelativeLayout
  • viewB將盈viewA的充氣「後面」被充氣另一視圖

一種方法的另一個被充氣之前。

  • 添加viewB到的RelativeLayout
  • 添加viewA到的RelativeLayout
  • viewA將盈viewB

的或移除的視圖,並將其重新添加到RelativeLayout的

  • 將viewA添加到相關佈局
  • 將viewB添加到relativelayout
  • 刪除viewA
  • 重新添加viewA
  • viewA將是盈viewB
+1

這樣做。當我在onCreateView()中添加內容時,我感到困惑。這返回聲明增加了一個視圖的佈局,所以使得返回sidemenu和做工之前添加/刪除。非常感謝! – MattWilliams89 2013-02-12 16:11:55

2

我做了這樣的:

parentView.addView(childView, 0); 

第二個參數是指數,在該位置哪個要添加孩子

這裏第二個參數在0處傳遞,這使得子視圖被添加到已經存在的視圖後面。