我想在屏幕上创建带有背景的片段以进行加载查询。
它无法正常工作,我无法在屏幕上看到片段
public class internet {
startQueryAsync(final Activity activity) {
new Thread() {
RelativeLayout backView = new RelativeLayout(activity);
@Override
public void run() {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
FragmentLoad fr = new FragmentLoad();
activity.getFragmentManager().beginTransaction().add(android.R.id.content, fr);
}
});
}
}.start();
}
}
public class FragmentLoad extends Fragment {
public FragmentLoad() {
super();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_load, container);
view.setLayoutParams(lpFr);
return view;
}
}
我不明白为什么它不起作用。
答案 0 :(得分:0)
您尚未提交片段交易。像这样改变你的方法
public void run() {
FragmentLoad fr = new FragmentLoad();
activity.getFragmentManager().beginTransaction().add(android.R.id.content, fr).commit(); // change this
}
答案 1 :(得分:0)
您忘了执行commit();
的{{1}}。
例如:
fragment
您也可以使用Fluent Interface Pattern:
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
// First, create your FragmentManager.
FragmentManager manager = activity.getFragmentManager();
// Then, create your transaction.
FragmentTransaction transaction = manager.beginTransaction();
// Add your fragment in the view.
transaction.add(android.R.id.content, new FragmentLoad());
// Commit the transaction.
transaction.commit();
}
});
有关详细信息,请参阅Google Fragment Documentation。
希望这有帮助。