我正在使用兼容包,修订版4将片段添加到我的Gingerbread应用程序中。没有记录任何错误,但片段不再显示在屏幕上(它在我开始清理它并添加方法之前一次就完成了!)。底部片段有望封装我的导航方法,如“goHome”和“goCart”,并放置在所有屏幕上。
我尝试将元素添加到我的布局中,并收到了android.view的可怕的Classnotfound错误。我已经进一步使用这种方法。
我的日志显示已添加片段。这是碎片:
public class BottomFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View v = inflater.inflate(R.layout.bottom_nav, container, false);
Log.v("BottomFragment","onCreate after inflate");
/*
ImageView find_img = (ImageView)v.findViewById(R.id.bottom_find_image);
find_img.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.v("BottomFragment.OnClickListener"," with Find clicked");
findRegistry();
}
});
*/
// Inflate the layout for this fragment
return v;
上面显示的日志消息。 这是添加片段的活动:
public class StartActivity extends FragmentActivity {
public static Context appContext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.find_main);
appContext = getApplicationContext();
// Create new fragment and transaction
BottomFragment newFragment = new BottomFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add( R.id.frame_bottom_frag, newFragment );
// Commit the transaction
transaction.commit();
}
这是Fragment使用的bottom_nav.xml。
<RelativeLayout
android:id="@+id/bottom_nav"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_height="wrap_content"
android:layout_width="60dp"
android:id="@+id/bottom_home_image"
android:src="@drawable/home"
android:clickable="true"
android:onClick="goHome"
/>
<ImageView
android:layout_height="wrap_content"
android:layout_width="60dp"
android:id="@+id/bottom_shopping_cart_image"
android:src="@drawable/shopping_cart"
android:clickable="true"
android:onClick="goCart"
/>
</LinearLayout>
</RelativeLayout>
这是活动布局find_main:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_gravity="center">
<TableLayout
android:id="@+id/main_screen"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TableRow android:padding="20dip">
<ImageView
android:layout_height="60dip"
android:layout_width="60dip"
android:id="@+id/home_image"
android:src="@drawable/create"
android:clickable="true"
android:onClick="goHome"
/>
<TextView
android:id="@+id/home_text"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/home" android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold"
android:layout_toRightOf="@id/home_image"
android:clickable="true"
android:onClick="goCart"/>
</TableRow>
</TableLayout>
<FrameLayout android:name="com.marcole.gingerbread.grw.BottomFragment"
android:id="@+id/frame_bottom_frag"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>
下面是一些日志:
11-02 16:20:57.650: INFO/ActivityManager(61): Start proc com.marcole.gingerbread.grw for activity com.marcole.gingerbread.grw/.StartActivity: pid=522 uid=10041 gids={3003}
11-02 16:20:57.690: INFO/dalvikvm(513): JNI: AttachCurrentThread (from ???.???)
11-02 16:20:57.690: INFO/AndroidRuntime(513): NOTE: attach of thread 'Binder Thread #3' failed
11-02 16:20:58.090: WARN/ActivityThread(522): Application com.marcole.gingerbread.grw is waiting for the debugger on port 8100...
11-02 16:20:58.100: INFO/System.out(522): Sending WAIT chunk
11-02 16:20:58.110: INFO/dalvikvm(522): Debugger is active
11-02 16:20:58.310: INFO/System.out(522): Debugger has connected
11-02 16:20:58.310: INFO/System.out(522): waiting for debugger to settle...
11-02 16:20:58.510: INFO/System.out(522): waiting for debugger to settle...
11-02 16:20:58.721: INFO/System.out(522): waiting for debugger to settle...
11-02 16:20:58.920: INFO/System.out(522): waiting for debugger to settle...
11-02 16:20:59.121: INFO/System.out(522): waiting for debugger to settle...
11-02 16:20:59.322: INFO/System.out(522): waiting for debugger to settle...
11-02 16:20:59.522: INFO/System.out(522): waiting for debugger to settle...
11-02 16:20:59.721: INFO/System.out(522): debugger has settled (1408)
11-02 16:21:00.771: DEBUG/dalvikvm(522): GC_EXTERNAL_ALLOC freed 59K, 49% free 2757K/5379K, external 2121K/2137K, paused 62ms
11-02 16:21:00.851: VERBOSE/BottomFragment(522): onCreate after inflate
11-02 16:21:01.521: INFO/ActivityManager(61): Displayed com.marcole.gingerbread.grw/.StartActivity: +3s935ms
任何帮助将不胜感激!
答案 0 :(得分:0)
我发现了问题。我需要将FrameLayout移动到表格布局中。 从:
</TableLayout>
<FrameLayout android:name="com.marcole.gingerbread.grw.BottomFragment"
android:id="@+id/frame_bottom_frag"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>
要:
</TableRow>
<FrameLayout android:name="com.marcole.gingerbread.grw.BottomFragment"
android:id="@+id/frame_bottom_frag"
android:layout_width="wrap_content"
android:gravity="bottom"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content">
</FrameLayout>
</TableLayout>
</LinearLayout>
现在,如果我可以让它一路走到最底层!