我完全不明白在Xamarin例如一段代碼在左右這裏使用Tab鍵https://developer.xamarin.com/samples/HelloTabsICS爲什麼FragmentManager.FindFragmentById可以用於FrameLayout?
據我瞭解FragmentManager.FindFragmentById
應該返回一個Fragment
和ID應該是過程中的一些Fragment
layout
文件夾下的XML文件中定義的。但上述來自鏈接代碼有給我一些奇怪的事情,這裏是一個佈局的xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:id="@+id/fragmentContainer"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
</LinearLayout>
和下面的代碼(在本例中演示)可以找出從ID fragmentContainer
這是一個一Fragment
FrameLayout
?這完全沒有任何意義,我,這裏是代碼:
var fragment = this.FragmentManager.FindFragmentById(Resource.Id.fragmentContainer);
if (fragment != null)
e.FragmentTransaction.Remove(fragment);
爲什麼的FrameLayout
的ID可以用來找出Fragment
一個實例?這一點真令人困惑。
我對Xamarin.Android以及Android編程(剛剛經歷了5天)頗爲陌生。所以請幫我解釋一下這件奇怪的事情。
非常感謝!
一個'FrameLayout'可以包含多於一個片段,所以你的意思是使用帶有'FrameLayout'的id的'FindFragmentById'將返回第一個片段(如果有的話)? – Hopeless