Search in sources :

Example 1 with Book

use of pri.weiqiang.myjapanese.mvp.bean.Book in project MyJapanese by 54wall.

the class LeftMenuAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    Book mBook = mBookList.get(position);
    LeftMenuViewHolder viewHolder = (LeftMenuViewHolder) holder;
    viewHolder.mTvName.setText(mBook.getName());
    if (mSelectedNum == position) {
        viewHolder.mLlLeftItem.setSelected(true);
    } else {
        viewHolder.mLlLeftItem.setSelected(false);
    }
}
Also used : Book(pri.weiqiang.myjapanese.mvp.bean.Book)

Example 2 with Book

use of pri.weiqiang.myjapanese.mvp.bean.Book in project MyJapanese by 54wall.

the class LessonsFragment method initView.

@Override
public void initView() {
    mLeftMenu.setLayoutManager(new LinearLayoutManager(getActivity()));
    mRightMenu.setLayoutManager(new LinearLayoutManager(getActivity()));
    // 如果可以确定每个item的高度是固定的,设置这个选项可以提高性能
    mLeftMenu.setHasFixedSize(true);
    mRightMenu.setHasFixedSize(true);
    mRightMenu.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
        }

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            Log.e(TAG, "onScrolled start");
            super.onScrolled(recyclerView, dx, dy);
            if (recyclerView.canScrollVertically(1) == false) {
                // 无法下滑
                showHeadView();
                return;
            }
            View underView = null;
            if (dy > 0) {
                underView = mRightMenu.findChildViewUnder(headerLayout.getX(), headerLayout.getMeasuredHeight() + 1);
            } else {
                underView = mRightMenu.findChildViewUnder(headerLayout.getX(), 0);
            }
            if (underView != null && underView.getContentDescription() != null) {
                int position = Integer.parseInt(underView.getContentDescription().toString());
                Book menu = rightAdapter.getMenuOfMenuByPosition(position);
                if (leftClickType || !menu.getName().equals(headMenu.getName())) {
                    if (dy > 0 && headerLayout.getTranslationY() <= 1 && headerLayout.getTranslationY() >= -1 * headerLayout.getMeasuredHeight() * 4 / 5 && !leftClickType) {
                        // underView.getTop()>9
                        int dealtY = underView.getTop() - headerLayout.getMeasuredHeight();
                        headerLayout.setTranslationY(dealtY);
                    // Log.e(TAG, "onScrolled: "+headerLayout.getTranslationY()+"   "+headerLayout.getBottom()+"  -  "+headerLayout.getMeasuredHeight() );
                    } else if (dy < 0 && headerLayout.getTranslationY() <= 0 && !leftClickType) {
                        headerView.setText(menu.getName());
                        int dealtY = underView.getBottom() - headerLayout.getMeasuredHeight();
                        headerLayout.setTranslationY(dealtY);
                    // Log.e(TAG, "onScrolled: "+headerLayout.getTranslationY()+"   "+headerLayout.getBottom()+"  -  "+headerLayout.getMeasuredHeight() );
                    } else {
                        headerLayout.setTranslationY(0);
                        headMenu = menu;
                        headerView.setText(headMenu.getName());
                        for (int i = 0; i < mBookList.size(); i++) {
                            if (mBookList.get(i) == headMenu) {
                                leftAdapter.setSelectedNum(i);
                                break;
                            }
                        }
                        if (leftClickType)
                            leftClickType = false;
                        Log.e(TAG, "onScrolled: " + menu.getName());
                    }
                }
            }
            Log.e(TAG, "onScrolled end");
        }
    });
}
Also used : Book(pri.weiqiang.myjapanese.mvp.bean.Book) RecyclerView(android.support.v7.widget.RecyclerView) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) BindView(butterknife.BindView) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) View(android.view.View) BaseView(pri.weiqiang.myjapanese.mvp.view.BaseView)

Example 3 with Book

use of pri.weiqiang.myjapanese.mvp.bean.Book in project MyJapanese by 54wall.

the class LessonsFragment method showHeadView.

private void showHeadView() {
    headerLayout.setTranslationY(0);
    View underView = mRightMenu.findChildViewUnder(headerView.getX(), 0);
    if (underView != null && underView.getContentDescription() != null) {
        int position = Integer.parseInt(underView.getContentDescription().toString());
        Book menu = rightAdapter.getMenuOfMenuByPosition(position + 1);
        headMenu = menu;
        headerView.setText(headMenu.getName());
        for (int i = 0; i < mBookList.size(); i++) {
            if (mBookList.get(i) == headMenu) {
                leftAdapter.setSelectedNum(i);
                break;
            }
        }
    }
}
Also used : Book(pri.weiqiang.myjapanese.mvp.bean.Book) BindView(butterknife.BindView) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) View(android.view.View) BaseView(pri.weiqiang.myjapanese.mvp.view.BaseView)

Example 4 with Book

use of pri.weiqiang.myjapanese.mvp.bean.Book in project MyJapanese by 54wall.

the class DBManager method getBooks.

public synchronized List<Book> getBooks() {
    // 仅第一次调用数据库时填充mBookList
    if (mBookList == null) {
        Log.e(TAG, "mBookList = null");
        SQLiteDatabase db = JPDatabase.getInstance(MyApplication.getInstance()).getReadableDatabase();
        Cursor cursor = db.rawQuery("select * from " + JPDatabase.DB_TABLE_LESSONS, null);
        mBookList = new ArrayList<>();
        mLessonList = new ArrayList<>();
        Book bookItem;
        Lesson lessonItem;
        String curbook = "大家的日本语第一册";
        int i = 0;
        while (cursor.moveToNext()) /*&& i < 50*/
        {
            i++;
            String book = cursor.getString(cursor.getColumnIndex("book"));
            String title = cursor.getString(cursor.getColumnIndex("title"));
            if (book.equals(curbook)) {
                lessonItem = new Lesson(book, title);
                mLessonList.add(lessonItem);
            } else {
                bookItem = new Book(curbook, mLessonList);
                mBookList.add(bookItem);
                mLessonList = new ArrayList<>();
                lessonItem = new Lesson(book, title);
                mLessonList.add(lessonItem);
                curbook = book;
            }
        }
        if (curbook.equals("新编日语IV")) {
            bookItem = new Book(curbook, mLessonList);
            mBookList.add(bookItem);
        }
        cursor.close();
        db.close();
    }
    return mBookList;
}
Also used : SQLiteDatabase(android.database.sqlite.SQLiteDatabase) Book(pri.weiqiang.myjapanese.mvp.bean.Book) Cursor(android.database.Cursor) Lesson(pri.weiqiang.myjapanese.mvp.bean.Lesson)

Aggregations

Book (pri.weiqiang.myjapanese.mvp.bean.Book)4 RecyclerView (android.support.v7.widget.RecyclerView)2 View (android.view.View)2 TextView (android.widget.TextView)2 BindView (butterknife.BindView)2 BaseView (pri.weiqiang.myjapanese.mvp.view.BaseView)2 Cursor (android.database.Cursor)1 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 Lesson (pri.weiqiang.myjapanese.mvp.bean.Lesson)1