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);
}
}
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");
}
});
}
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;
}
}
}
}
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;
}
Aggregations