我正在使用android中的库,尝试使用Fragments
来简化导航。我在如何使用我想要进行的一些即将发生的更改来维护代码时遇到了一些麻烦。
目前我只使用支持库(因为这可以在Android的过去和当前版本中使用),但我想提供(并且有人问我是否可以提供)该库的非支持版本。除此之外,我有2个版本(一个Fragment
和另一个ListFragment
),以便我可以支持两种Fragment
类型。我目前正在复制Fragment
和ListFragment
之间的代码,因为无法在运行时决定从哪个扩展。为了确保我总是在两个类上实现这些方法,他们都实现了INavigationFragment
,这样就不会错过任何一个类错误,加上这个让我传遍我的片段而不用担心它们是ListFragment
还是Fragment
。
我的问题是,是否有人知道我可以支持android.app.Fragment
和android.support.v4.app.Fragment
的方式,而无需在整个地方复制我的代码?我已经让我的经理的核心干净,它应该能够轻松使用正确的非支持/支持片段,但我似乎无法想到一个简单的方法来为片段本身做。
请在此处查看我目前如何处理支持库。 https://github.com/DMCApps/NavigationFragment/tree/master/navigation-fragment/src/main/java/com/dmcapps/navigationfragment
我有一些想法,但我不确定是否有其他人可以帮助我。
我的想法(1我认为最好记住我必须编写的代码量):
Annotation Processor
创建NavigationFragment
,然后通过更改导入并适当扩展来创建NavigationListFragment
和非支持片段。NavigationListFragment
并让用户在onCreateView中实现自己的List收集。 (我讨厌这样做,但它会让代码管理变得更容易。)我想我只有两种方法可以记住。
谢谢, DMCApps