gpt4 book ai didi

Android - 与 android :id 具有不同 ID 的 fragment

转载 作者:行者123 更新时间:2023-11-30 01:15:32 25 4
gpt4 key购买 nike

每当我在 Fragment 类的“OnCreateView”中调用 inflate 方法时,我都希望得到一个具有在 android:id 值中指定的 ID 的 fragment 。但是我得到了一个不同的 ID,与 containerID 相同。

我正在尝试以编程方式在 relativeLayout 中添加 fragment ,对于此处显示的示例,我有两个 fragment ,其中一个必须设置 RelativeLayout.BELOW 参数。

这是顶部 fragment (ts_fragment) 的代码:

xml 看起来像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/ts_fragment">
.
.-->other stuff
.

这是添加 fragment 的代码:

  public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {

View view=inflater.inflate(fragmentLayout,container,false);

setGraphics(view); //custom function which gets views and sets gui.

return view;
}

View 获得“fragmentLayout”的 ID,但 fragment 获得不同的 ID,即容器 ID,这使得我的 fragment 将它们自己放在另一个之上而没有区分 id。

如何避免这种情况?谢谢。

编辑

我尝试使用类似 topFragment.getId() 的方法,但它会返回 containerID。 javadoc 说:

Return the identifier this fragment is known by. This is either the android:id value supplied in a layout or the container view ID supplied when adding the fragment.

我只是不想要容器 View ID,有没有办法强制 fragment 具有 android:id 值?

更新

尝试打印不同的 ID:

My_Android: Main layout has id: 2131492958 //R.id.MainLayout ->ContainerID
My_Android: MyTopFragment{5cd93c9} - id: 2130968617 //R.id.ts_fragment value
My_Android: MyBottomFragment{2055ace} - id: 2130968601 //R.id.bs_fragment value

My_Android: MyTopFragment has ID: 2131492958 //After inflating process, the fragment gets this id, the same of R.id.MainLayout
My_Android: MyBottomFragment has ID: 2131492958 //Idem

最佳答案

已解决

这里的关键是我的图形用户界面设置中的错误。顶部 fragment 设置为在宽度和高度上匹配父级!所以第二个没有机会展示。

也就是说,至少为第一个 fragment 的 LayoutParams 中的 HEIGHT 参数设置 WRAP_CONTENT 可以使事情正常进行。

不需要 fragment ID,重要的是知道 fragment View 的 ID。

关于Android - 与 android :id 具有不同 ID 的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37911890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com