从组件到片段的Android过渡

时间:2017-12-07 20:56:07

标签: android android-fragments android-transitions

我知道这是可能的,但我似乎无法弄明白。我有一个Android应用程序,显示使用网格适配器,视图组和片段创建的正方形网格。当用户单击网格中的块时,它会显示包含其他相关信息的新片段。

当我单击第一个块时,我能够进行转换,但它只是翻转整个网格而不是使用新片段进行翻转转换。我还想问一下如何创建缩放过渡?

GridViewFragment - 以下是其中一个创建网格的文档的代码段。

@AfterViews
void AfterViews() {
    context = getActivity().getBaseContext();
    gridAdapter.setDataResponse(dashboard.resp);
    gridview.setAdapter(gridAdapter);
    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            DashboardGridViewItem item = (DashboardGridViewItem) v;
            flipCard(app.getGridInfo()[position], item.getImageJSON());
        }
    });

    /*mGoogleApiClient.connect();*/
}

@UiThread(propagation = UiThread.Propagation.REUSE)
void flipCard(DataObject data, ResponseEntity<String> image) {
    String fragmentType = data.getTitle();

            dashboard.fragment = Fragment_.builder().build();
            dashboard.fragment.setmData(data);
            dashboard.fragment.setImageJSON(image);

            FragmentManager fragmentManager = dashboard.getSupportFragmentManager();
            transaction = fragmentManager.beginTransaction();
            transaction.setCustomAnimations(R.anim.card_flip_left_in, R.anim.card_flip_left_out);

            transaction.replace(dashboard.fragmentContainer.getId(), dashboard.summaryFragment);
            transaction.addToBackStack(null);

            transaction.commit();
.... (the rest of the function is just switch cases for different grid blocks, so it looks like what's pasted above)

这是在仪表板上声明片段容器的位置(可在上面的代码中访问)。

@ViewById
public FrameLayout fragmentContainer;

正如我上面提到的,问题是在单击块之后发生了转换,但它控制整个网格,然后在动画结束后显示新的片段。我希望动画发生在片段上。

0 个答案:

没有答案