繁体   English   中英

外部片段的Android动画视图正在被剪裁

[英]Android animate view outside fragment is getting clipped

我有一个片段的视图。 此片段位于FrameLayout中。 我想动画这个视图移动到片段边界之外。 但是,当越过边界时,视图总是被剪裁。 我试过通过将android:clipChildren="false"android:clipToPadding="false"为一切,但我无法让它工作。

这甚至可能吗?

我有片段的类似问题,并在我的层次结构中的所有级别上放了android:clipChildren="false"android:clipToPadding="false" ,但它仍然无效。 对我有用的技巧是在我的片段代码中添加这个覆盖:

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    ViewGroup vg = (ViewGroup) view;
    vg.setClipChildren(false);
    vg.setClipToPadding(false);
}

希望这可以帮助...

PS应该归功于这个答案

frangulyan你错过了你的答案中的其他代码。 以下解决方案对我有用。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    LinearLayout rootView = (LinearLayout) inflater.inflate(R.layout.fragment_main, container, false);
    //This can be done in XML
    rootView.setClipChildren(false);
    rootView.setClipToPadding(false);
    return rootView;
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
//This is the NoSaveStateFrameLayout - force it to not clip
FrameLayout frameLayout = (FrameLayout) getView();
frameLayout.setClipChildren(false);
frameLayout.setClipToPadding(false);

}

@frangulyan和@Barrie Galitzky已经给出的答案都在正确的轨道上,但是我必须在层次结构中为所有父级的setClipping false添加此循环才能正常工作

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    ViewGroup vg = (ViewGroup) view;
    while(vg != null) {
        vg.setClipChildren(false);
        vg.setClipToPadding(false);
        vg = vg.getParent() instanceof ViewGroup ? (ViewGroup) vg.getParent() : null;
    }
}

我知道这有点旧了,并且已经给出了正确的答案,但我想补充一点,你可以使用ViewGroup做与frangulyan在onCreateView里面做同样的事情。 即:

@Override
public View onCreateView(LayoutInflater, ViewGroup container, Bundle savedInstanceState) {
    container.setClipChildren(false);
    container.setClipToPadding(false);
    // Whatever other setup you like
    return View;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM