6
我有一個需求,我有一個活動,顯示的項目列表,如Facebook的飼料,當點擊一個按鈕從一個列表項的對話框必須彈出將顯示評論該項目。如何在一個活動內創建一個覆蓋視圖
我正在閱讀文檔,發現我們必須創建一個DialogFragment來實現這一點。如果這是正確的方法,請諮詢。
我有一個需求,我有一個活動,顯示的項目列表,如Facebook的飼料,當點擊一個按鈕從一個列表項的對話框必須彈出將顯示評論該項目。如何在一個活動內創建一個覆蓋視圖
我正在閱讀文檔,發現我們必須創建一個DialogFragment來實現這一點。如果這是正確的方法,請諮詢。
你實際上並沒有使用一個對話框。我認爲對話更適合於向用戶展示簡單的視圖或僅提供警告/確認(通常使用AlertDialog完成)。
對於你的情況,我想最好的方法是在你的活動上有一個FrameLayout,你的主要佈局元素的兄弟,並且當你想要在主Activity的佈局上顯示一個類似的彈出窗口時添加一個Fragment。只要您將片段的視圖放在活動的根佈局元素之後,片段就會顯示在主佈局的頂部,作爲疊加層。例如: -
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- Activity's main layout here -->
</LinearLayout>
<FrameLayout android:id="@+id/overlay_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</merge>
,然後在你的活動時要顯示的片段你這樣做:
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.add(R.id.overlay_fragment_container, yourFragment)
.commit();
希望它能幫助:)好運!
此外,你可能想檢查你是否已經加載了這個片段。舉例http://android.codota.com/scenarios/51891625da0a971a9b2a708a/android.app.FragmentManager?tag=out_2013_05_05_07_19_34 – drorw
Victor,你能解釋爲什麼你建議使用標籤嗎?我們可以有一個正常的佈局作爲父母,我們可以有一個FrameLayout?當活動中有片段時,我也應該使用FragmentActivity? –
活動的根視圖(id爲android.R.id.content的視圖,其中載入的佈局被設置)是一個FrameLayout。我可以使用FrameLayout作爲我的文件的根,而不是使用合併標籤,但是隨後我會更加不必要地複雜化視圖層次結構,因爲在FrameLayout中具有match_parent width/height的FrameLayout只是無用的冗餘。無論如何,你可以將合併標籤解釋爲FrameLayout。 –