Articles of android fragments

共享元素转换与FragmentTransaction.replace()一起工作,但不适用于FragmentTransaction.add()

新的共享元素转换工作时,我使用片段“ replace ”,但我似乎无法使其工作片段“ 添加 ”。 我在这两种情况下使用相同的容器。 更多细节: 活动 – 布局 – > <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00ffff" android:orientation="vertical" > </FrameLayout> 在活动启动时,我将Fragment1添加到屏幕上 getFragmentManager().beginTransaction().replace(R.id.container,new TransitionTestFragment1(), "TransitionTestFragment1").commit(); 在Fragment1布局中的视图的单击事件 – >我添加Fragment2到屏幕上。 我在第一个片段的onCreateView中设置侦听器 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final TransitionSet transitionSet = new TransitionSet(); transitionSet.addTransition(new ChangeImageTransform()); transitionSet.addTransition(new ChangeBounds()); transitionSet.addTransition(new ChangeTransform()); transitionSet.setDuration(300); View […]

为什么Android使用相同的ID更改EditTexts的值?

我有一个包含LinearLayout的Fragment,根据一些业务逻辑,不同的项目被夸大。 这些项目中包含一个EditText。 当我有多个这些项目与不同的内容,我分离/附加片段,所有EditTexts以某种方式获得所有相同的文本。 这只发生在EditText在布局文件中有一个id。 为什么会发生? 有没有其他的方式来防止这个,除了删除ID? 我想使用findViewById在我膨胀的项目来访问视图,而不是容易出错的getChildAt 。 我创build了一个简约的例子来演示https://github.com/rodja/EditTextValueProblem

Android 1.6&Fragment&Tabhost

我正在升级Android应用程序(1.6兼容性),它使用TabHost显示3个不同的标签与嵌套的活动。 当时我使用ActivityGroup技巧来显示标签中的嵌套活动,但是我对这个方法非常不满意,因为处理一些特性是一个真正的痛苦。 我听说1.6的Fragments API兼容性包, Fragment看起来非常适合我想做的事情(显示带有转换效果和内容的选项卡中的嵌套视图/function),但是我无法使用TabHost工作(这是意味着使用一个Action Bar但在兼容性包中不可用)。 你们中有没有人find了在你的应用程序中创build这种结构的方法? 我的错误是: ERROR/AndroidRuntime(955): Caused by: java.lang.RuntimeException: Unable 开始活动ComponentInfo {com.XXX}:java.lang.IllegalArgumentException:没有findid为0x1020011的片段MyFragment 码 main.xml中 <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dp" android:layout_weight="1" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" /> </LinearLayout> </TabHost> MainActivity.java public class MainActivity extends TabActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); […]

用ViewPager中的另一个片段replace片段

我使用一个ViewPager和一个FragmentPagerAdapter来承载三个不同的片段 [Fragment1][Fragment2][Fragment3] 我想要实现的是成功地用一个全新的片段Fragment4replaceFragment1,如果一个特定的任务成功的话。 当我使用.. FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.fragment1_layout_id, fragment4); transaction.commit(); ..碎片被精美地replace,Fragment4被显示而不是Fragment1。 尽pipe我一刷到片段3,然后又回到片段4,片段1已经卷土重来。 那么,如果我使用.. FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.remove(fragment1); transaction.commit(); ..Fragment1被删除,当我回来Fragment4在那里。 所以这个解决scheme的问题是,我无法find一个方式来立即显示Fragment4作为Fragment1被删除,即使我试过: transaction.add(fragment4); transaction.show(fragment4); 下面是我的FragmentPagerAdapter实现在这个时候的样子, 没有任何事务pipe理 : public static class PagerAdapter extends FragmentPagerAdapter { public PagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return VIEW_COUNT; […]

卡活动之间翻转animation

如何做活动之间的卡片翻转animation http://developer.android.com/training/animation/cardflip.html 上述链接切换静态布局..我想做一个CardFlip之间的2个活动有一个dynamic的布局..感谢在… .. 🙂 我有两个活动 包含产品细节的Main_Activity (说Galaxy S3) 查询用户search请求的Search_Activity Main_Activity有一个searchbutton。 当您点击button时, Main_Activity视图必须卡片翻转至Search_Activity 。 同样,一旦用户select一个产品,它应该Card-Flip副词。 我试图按照上面提到的URL来实现。但是它只是在使用XML定义的两个静态布局之间翻转。 我在ActionBar实现search

在片段中使用enableAutoManage()

是否有另一种连接Google API客户端的方式? 我使用自动完成的地方,我必须使用这个代码在一些地方在MYFRAGMENT mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this) .addApi(Places.GEO_DATA_API) .enableAutoManage(this, GOOGLE_API_CLIENT_ID, this) .addConnectionCallbacks(this).build(); 我的问题与 enableAutoManage(this, GOOGLE_API_CLIENT_ID, this) .addConnectionCallbacks(this).build(); 我无法处理它,因为当我用getActivity()replacethis ,我有很多铸造问题 谢谢你的帮助,如果这个问题很傻,我很抱歉。

如何在Android中创build半透明的灰色教程覆盖?

你知道当你第一次运行Android设备(如果你使用模拟器,你会看到很多东西),有一个关于如何使用启动器和添加小部件等有用的小教程。我试图find一个例子这在谷歌,但我不能。 我希望你知道我的意思。 这是每一步都有蓝色的“okay”button。 无论如何,我想为我的应用程序创build一个,但我不确定哪个是最好的方式去做。 我是否创build了一个片段,使其能够在我的常规活动之上变得半透明,并且只在第一次运行时才显示出来? 是否为本教程的每个部分制作半透明的.png,并在第一次运行时将其覆盖在常规启动器活动上? 如果我做后者,我怎么调整所有不同的屏幕尺寸? 我可以在Photoshop中将图像渲染到不同的维度,但是这并不能涵盖所有的维度。 如果我走碎片路线,我可以说“match_parent”而不用担心。 但是,我必须弄清楚碎片是如何工作的,他们把我搞糊涂了。

如何在WebView里添加“返回”function在Fragment里面?

更新:解决! 问题与我的Viewpager而不是WebView有关。 我想添加一个“返回”function,我的WebView里面的Fragment 。 但我不知道如何: public final class TestFragment extends Fragment { static WebView mWeb; private View mContentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mContentView = inflater.inflate(R.layout.webview, null); mWeb = (WebView)mContentView.findViewById(R.id.webview); WebSettings settings = mWeb.getSettings(); settings.setJavaScriptEnabled(true); settings.setSupportZoom(false); mWeb.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); mWeb.getSettings().setBuiltInZoomControls(false); mWeb.loadUrl("myurl…"); mWeb.setOnKeyListener(new OnKeyListener(){ public boolean onKey(View v, int keyCode, KeyEvent event) { […]

通过触摸下的观点

在我的应用程序中,我在活动之上有一个片段。 片段正在填满整个屏幕。 部分片段是一个透明的视图,你可以看到(属于该活动)下的视图。 有没有办法将触摸事件转移到片段的透明视图下的视图? 谢谢!

屏幕旋转后,onSaveInstanceState不会被调用

我知道有很多quetions onSaveInstanceState注册,但我无法find我的问题的答案。 我有一个扩展AppCompatActivity的活动; 这个活动使用3个片段,它有一个variables“int currentStep”来跟踪哪个片段被显示。 在onSavedInstanceState方法中,我将currentStepvariables存储在bundle中,然后在onCreate方法中恢复它。 public class MainActivity extends AppCompatActivity { private final String CURRENT_STEP_TAG = "current_step"; private int currentStep; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pedido); if(savedInstanceState == null) { loadFirstFragment(); } else { currentStep = savedInstanceState.getInt(CURRENT_STEP_TAG); if(currentStep == 2){ //Do some stuff… } } } @Override public void onSaveInstanceState(Bundle outState, PersistableBundle […]