飞溅
我有一个主活动UI启动操作,需要5-10秒(需要在主UI线程上处理),所以我想使用一个启动屏幕,而不是默认的黑色或无响应的主UI。
下面提供了一个很好的解决方案。
setContentView(R.layout.splash),setContentView(R.layout.main)Android Splash Screen before black screen
溅出碎片
我还使用了片段,这通常要求在片段实例化之前调用setContentView(R.layout.main) -这样碎片管理器就可以在R.layout.main中找到视图存根来将片段膨胀到(严格地说,视图存根是另一回事)。
setContentView(R.layout.main),因为这样可以用(尚未准备好的)主屏幕替换启动屏幕。fragmentTransaction.add(viewNotViewId, fragment);那样的重载几乎-回答
下面是除关键之外的所有内容,即在片段事务之前调用setContentView:How do I add a Fragment to an Activity with a programmatically created content view
发布于 2012-07-02 20:16:19
您可以尝试替换FragmentActivity中的片段,以下是部分编码的思想:假设您的片段布局如下(main.xml):
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">
<LinearLayout android:id="@+id/waiting" ...>
</LinearLayout>
<!-- hidden layout -->
<LinearLayout>
<LinearLayout android:id="@+id/layout_list_items" ...>
</LinearLayout>
<LinearLayout android:id="@+id/layout_detail" ...>
</LinearLayout>
</LinearLayout>
</LinearLayout>你的FragmentActivity是这样的:
public class FragmentsActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
Fragment fragA = new WaitingTransaction();
FragmentTransaction fragTrans = this.getSupportFragmentManager().beginTransaction();
fragTrans.add(R.main.waiting, fragA);
fragTrans.commit();
}
private void afterProcessing(){
//show hidden layout and make the waiting hidden through visibility, then add the fragment bellow...
FragmentTransaction fragTrans = this.getSupportFragmentManager().beginTransaction();
fragTrans.add(R.main.layout_list_items,
new FragmentList());
fragTrans.replace(R.main.layout_detail,
new FragmentB());
fragTrans.commit();
}
}发布于 2012-07-02 20:12:10
在不调用任何setContentView的情况下尝试这段代码
fragmentTransaction.add(android.R.id.content, Fragment.instantiate(MainActivity.this, SplashFragment.class.getName()));这里的主要方法是将片段放置在id android.R.id.content中,在任何布局通过setContentView膨胀之前总是存在的。
https://stackoverflow.com/questions/11299831
复制相似问题