相关疑难解决方法(0)

碎片中的碎片

我想知道这是否是Android API中的一个错误:

我有这样的设置:

?----?---------?
|    |         |
|  1 |    2    |
|    |?-------?|
|    ||       ||
|    ||   3   ||
?----??-------??
Run Code Online (Sandbox Code Playgroud)
  1. 是一个在右侧窗格中加载片段#2(搜索屏幕)的菜单.
  2. 是包含片段#3的搜索屏幕,片段#3是结果列表.
  3. 结果列表在几个地方使用(包括作为一个功能正常的高级片段).

此功能在手机上非常有效(其中1和2和3为ActivityFragments).

但是,当我使用此代码时:

    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();       
    Fragment frag = new FragmentNumber2();
    if(toLoad != null) frag.setArguments(toLoad);
    transaction.replace(R.id.rightPane, frag);      
    transaction.commit();
Run Code Online (Sandbox Code Playgroud)

其中R.id.leftPaneR.id.rightPane<fragment>S IN水平线性布局.

据我所知,上面的代码删除了驻留的片段,然后用新的片段替换它.很棒......显然不会发生这种情况,因为当第二次运行此代码时会出现以下异常:

07-27 15:22:55.940: ERROR/AndroidRuntime(8105): Caused by: java.lang.IllegalArgumentException: Binary XML file line #57: Duplicate id 0x7f080024, tag null, or parent id 0x0 with another fragment for FragmentNumber3
Run Code Online (Sandbox Code Playgroud)

这是因为FragmentNumber3的容器已被复制,并且它不再具有唯一ID.在添加新的片段之前,初始片段没有被销毁(?)(在我看来,这意味着它还没有被 …

android android-fragments android-nested-fragment

145
推荐指数
4
解决办法
14万
查看次数

Fragment中的MapFragment,替代方案?

我需要你的帮助......我一直工作到3天.我的应用正在使用片段.其中一个片段必须显示Android版Google Maps V2 api中的地图.

目前,我正在使用MapFragment,但毫不奇怪,片段中的片段不是一个好主意,但它有效,地图正在显示,我可以编辑它但是当我切换主片段并返回它时.

引起:java.lang.IllegalArgumentException:二进制XML文件行#59:复制id 0x7f070041,标记为null或父ID为0x7f070040,另一个片段为com.google.android.gms.maps.MapFragment

在android.app.Activity.onCreateView(Activity.java:4252)

在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)

当我继续另一个片段并返回到包含地图的片段时,这就是原因.我正在寻找3天来解决这个问题,但没有很好的结果.

为了继续,我有一个Activity调用一个片段,该片段在布局文件中包含一个MapFragment.如果您需要更多,请问:)

谢谢

编辑:这是在主Activity中更改Fragment的代码

private void swtichFragment(Fragment fragment, Bundle bundle)
{
fragment.setBundle(this, bundle);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.rightFragmentPlaceHolder, fragment);
fragmentTransaction.commit();
mRightFragment = fragment;
}
Run Code Online (Sandbox Code Playgroud)

android fragment mapfragment google-maps-android-api-2

24
推荐指数
4
解决办法
4万
查看次数

在Android中保存MapFragment(Maps v2)状态

我正在使用新的GoogleMaps API(v2)并且片段存在一些问题.我的应用程序(Map,List)中有两个片段,用户可以在它们之间切换.到目前为止使用此代码正常工作:

if (itemPosition == 0) {
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.fragmentpos, myMapFragment).commit();
    } else if (itemPosition == 1) {
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.fragmentpos, myListFragment).commit();
}......
Run Code Online (Sandbox Code Playgroud)

当我使用地图时,切换到列表片段,然后返回到地图片段,不保存地图的最后位置.这不是我想要的,我希望地图处于保存状态,因为我"离开"它..我怎么能完成这个?我试图保存相机的位置

public void onSaveInstanceState(Bundle outState){
   outState.putDouble("LAT", mMap.getCameraPosition().target.latitude);
   outState.putDouble("LON", mMap.getCameraPosition().target.longitude);
   outState.putFloat("BEAR", mMap.getCameraPosition().bearing);
   ...
Run Code Online (Sandbox Code Playgroud)

}

并在onCreateView()中恢复它,但Bundle始终为null.如果我替换片段,则不会调用onSaveInstanceState.

那么如何保存地图的状态呢?

android android-maps android-fragments android-fragmentactivity

16
推荐指数
1
解决办法
1万
查看次数

切换片段 - 谷歌地图片段V2 - 活动已被破坏错误

我有一个地图活动(SherlockFragmentActivity)加载在地图片段中,该片段有2个按钮,并在显示2个不同片段之间切换(GoogleMapFragment和ScaleImageViewFragment)

屏幕截图

当我点击Exhibitor Map按钮时它会替换片段,但是当我点击后面我得到一个"java.lang.IllegalStateException:Activity已被销毁"错误

ERROR/AndroidRuntime(5768): FATAL EXCEPTION: main
    java.lang.IllegalStateException: Activity has been destroyed
    at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1342)
    at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
    at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
    at com.takeit2eleven.towniemeeting.android.fragments.GoogleMapFragment.onCreateView(GoogleMapFragment.java:42)
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
    at android.os.Handler.handleCallback(Handler.java:615)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4745)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是我的MapsFragment.java文件:

public class MapsFragment extends SherlockFragment {

Button mHotelMapButton;
Button mExhibitorButton;
GoogleMapFragment mGoogleMapFragment;
ScaleImageViewFragment mScaleImageViewFragment;
static boolean mShowingGoogleMap = true;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-activity mapfragment supportmapfragment

9
推荐指数
1
解决办法
1万
查看次数

Android应用程序错误 - 使用com.google.android.gms.maps.SupportMapFragment的另一个片段重复ID 0x7f04000f,标记为null或父ID为0x0

我正在尝试制作一个简单的Android应用程序并且无法修复此错误.

该应用程序有一个4选项卡固定按钮导航,并在第4个选项卡上切换到另一个选项卡时发生错误.在任何其他页面上工作正常,但第四个选项卡每次都会导致致命错误.除了TextView元素之外,该页面上没有任何内容.任何人都可以帮我弄清楚什么是错的或指出我正确的方向?

02-17 21:48:54.378: E/AndroidRuntime(5543): FATAL EXCEPTION: main
02-17 21:48:54.378: E/AndroidRuntime(5543): android.view.InflateException: Binary XML file line #12: Error inflating class fragment
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at com.example.testthree.MainActivity$MapSectionFragment.onCreateView(MainActivity.java:241)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1264)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:672)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
02-17 21:48:54.378: E/AndroidRuntime(5543):     at …
Run Code Online (Sandbox Code Playgroud)

android android-layout

6
推荐指数
1
解决办法
2万
查看次数

viewpagerindicator和不同的布局

我从http://www.zylinc.com/blog-reader/items/viewpager-page-indicator.html上引用了viewpagerindicator的代码.我想在不同的页面上显示不同的视图.现在我可以显示列表项了每页(3页)​​,但我想显示让我们说第二和第三页上的textview.i进行了一些更改,并使用数组创建标题这里是该片段

            @Override
        public String getTitle(int pos){
            Log.i("FragmentList", "current page position is : " +mViewPager.getCurrentItem());
            switch (pos) {
            case 0:return titles[0];
            case 1:return titles[1];
            case 2:return titles[2];
            default:return titles[0];

            }
//          pageListener = new DetailOnPageChange();
//          mViewPager.setOnPageChangeListener(pageListener);
        }
Run Code Online (Sandbox Code Playgroud)

所以当我改变页面时我也想改变布局我在想如果我能得到页面的当前位置我可以将它们放在开关盒中并实现布局......但是因为mViewpager.getcurrentitem在这个函数中表现正常some1帮助我应该实现谁,这是我的代码viewpagerindicator activty

package com.zylinc.view;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.zip.Inflater;

import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.ListFragment;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import …
Run Code Online (Sandbox Code Playgroud)

viewpagerindicator

5
推荐指数
1
解决办法
1575
查看次数

ViewPagerIndicator ClassNotFoundException?

我正在尝试ViewPagerIndicator在我的项目中使用Jake Wharton的库,我按照这里列出的简单教程:

http://viewpagerindicator.com/

但是ClassNotFoundException当我尝试运行我的项目时,我一直在努力.

这是我在布局中的XML:

<android.support.v4.view.ViewPager
    android:id="@+id/day_pager"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" />

<com.viewpagerindicator.TitlePageIndicator
    android:id="@+id/titles"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent" />
Run Code Online (Sandbox Code Playgroud)

这是我拥有的相应代码(dayPage是一种ViewPager类型).

    ArrayList<Integer> testData = new ArrayList<Integer>();
    testData.add(12);
    testData.add(13);
    testData.add(22);

    dayPage = (ViewPager) this.getActivity().findViewById(R.id.day_pager);
    dayPage.setAdapter(new DayAdapter(testData));

    //Bind the title indicator to the adapter
    TitlePageIndicator titleIndicator = (TitlePageIndicator)this.getActivity().findViewById(R.id.titles);
    titleIndicator.setViewPager(dayPage);
Run Code Online (Sandbox Code Playgroud)

现在的价值testData是垃圾.

完整的堆栈跟踪是:

08-25 22:32:23.420: E/AndroidRuntime(1710): FATAL EXCEPTION: main
08-25 22:32:23.420: E/AndroidRuntime(1710): android.view.InflateException: Binary XML file line #12: Error inflating class com.viewpagerindicator.TitlePageIndicator
08-25 22:32:23.420: E/AndroidRuntime(1710):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
08-25 …
Run Code Online (Sandbox Code Playgroud)

android viewpagerindicator

5
推荐指数
1
解决办法
6219
查看次数