我正在尝试打开Android示例项目 - Android Studio中的导航抽屉,但在构建时遇到错误。
以下是重现它的步骤:
错误:(43)找不到属性' layoutManager'的资源标识符。 在包' com.example.android.navigationdrawer'
中
Android Studio版本为 - 1.4 Beta 4
提前感谢您的帮助。
答案 0 :(得分:25)
编译器在activity_navigation_drawer.xml
:
app:layoutManager="LinearLayoutManager"
解决此问题
从XML中删除此属性,以便您的Recyclerview如下所示:
<android.support.v7.widget.RecyclerView
android:id="@+id/left_drawer"
android:scrollbars="vertical"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="left|start"
android:choiceMode="singleChoice"
android:divider="@null"/>
按下Gradle Sync按钮
在NavigationDrawerActivity
中,在OnCreate()中添加以下两行代码;
LinearLayoutManager mLinearLayoutmanager = new LinearLayoutManager(this);
mDrawerList.setLayoutManager(mLinearLayoutmanager);
所以你的代码现在看起来像这样:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation_drawer);
mTitle = mDrawerTitle = getTitle();
mPlanetTitles = getResources().getStringArray(R.array.planets_array);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (RecyclerView) findViewById(R.id.left_drawer);
LinearLayoutManager mLinearLayoutmanager = new LinearLayoutManager(this);
mDrawerList.setLayoutManager(mLinearLayoutmanager);
....
祝你好运
修改强>:
原始xml代码不再有效的原因很可能是xmlns:app="http://schemas.android.com/apk/res-auto"
命名空间不再支持layoutManager
属性。
有关名称空间的更多信息,请访问:https://stackoverflow.com/a/26692768/3708094
答案 1 :(得分:2)
您当然可以通过xml定义LayoutManagers等。这是使用本机GridLayoutManager的示例:
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/posters_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:orientation="vertical"
app:layoutManager="android.support.v7.widget.GridLayoutManager"
app:reverseLayout="false"
app:spanCount="3"
app:stackFromEnd="false" />
如果要使用自定义LayoutManager,请遵循此处定义的规则:
答案 2 :(得分:0)
只需将build.gradle文件(模块)升级到最新版本,我就试了一下,现在一切正常。
的引用:
https://github.com/googlesamples/android-NavigationDrawer/issues/9
答案 3 :(得分:0)
你确定gradle解决了所有依赖关系吗?当我偶尔从依赖项中删除了recyclerview支持库时,我遇到了同样的问题:
compile 'com.android.support:recyclerview-v7:25.0.1'