在没有FragmentTransactions或.commit的情况下初始化片段?错误?

时间:2016-12-11 22:34:38

标签: android user-interface android-fragments wifi-direct

我目前正在计算WIFIDirect,主要是按照下面列出的Google演示

https://android.googlesource.com/platform/development/+/master/samples/WiFiDirectDemo/src/com/example/android/wifidirect

我一直非常困惑于演示从listFragment启动详细信息片段的方式,其中来自父主机活动的接口调用(showDetails(device)),如下所示

@Override
public void showDetails(WifiP2pDevice device) {
DeviceDetailFragment fragment = (DeviceDetailFragment) getFragmentManager()
.findFragmentById(R.id.frag_detail);
fragment.showDetails(device);
}

然后我们被反弹到detailFragment自己的showDetails(设备))方法:

public void showDetails(WifiP2pDevice device) {
this.device = device;
this.getView().setVisibility(View.VISIBLE);
TextView view = (TextView) mContentView.findViewById(R.id.device_address);
view.setText(device.deviceAddress);
view = (TextView) mContentView.findViewById(R.id.device_info);
view.setText(device.toString());
}

我搜索了代码,在任何地方都没有.commit()或FragmentTransaction。我怀疑它是.getView.SET_VISIBILITY调用,但没有.commit,什么都不应该发生?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果Fragment直接位于xml中,则无需添加事务。当您交换片段的屏幕元素时,您只需要一个事务。