Browse Source

feat: 🔥 首页完善

master
niushuai233 1 year ago
parent
commit
80501966d0
  1. 78
      app/src/main/java/cc/niushuai/didicheck/MainActivity.java
  2. 2
      app/src/main/res/layout/item_list.xml
  3. BIN
      app/src/main/res/mipmap-hdpi/ic_ice_cream.png
  4. BIN
      app/src/main/res/mipmap-mdpi/ic_ice_cream.png
  5. BIN
      app/src/main/res/mipmap-xhdpi/ic_ice_cream.png
  6. BIN
      app/src/main/res/mipmap-xxhdpi/ic_ice_cream.png
  7. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_ice_cream.png
  8. BIN
      icon/冰激凌.png

78
app/src/main/java/cc/niushuai/didicheck/MainActivity.java

@ -1,5 +1,6 @@
package cc.niushuai.didicheck; package cc.niushuai.didicheck;
import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
@ -9,14 +10,23 @@ import androidx.viewpager.widget.ViewPager;
import com.github.clans.fab.FloatingActionButton; import com.github.clans.fab.FloatingActionButton;
import com.github.clans.fab.FloatingActionMenu; import com.github.clans.fab.FloatingActionMenu;
import java.util.ArrayList;
import java.util.List;
import cc.niushuai.didicheck.biz.entity.CheckProject;
import cc.niushuai.didicheck.biz.enums.CheckTypeEnum; import cc.niushuai.didicheck.biz.enums.CheckTypeEnum;
import cc.niushuai.didicheck.biz.room.DBManager; import cc.niushuai.didicheck.biz.room.DBManager;
import cc.niushuai.didicheck.databinding.ActivityMainBinding; import cc.niushuai.didicheck.databinding.ActivityMainBinding;
import cc.niushuai.didicheck.ui.main.TabsPagerAdapter; import cc.niushuai.didicheck.ui.main.TabsPagerAdapter;
import io.reactivex.Flowable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding; private ActivityMainBinding binding;
private List<CheckProject> checkProjectList = new ArrayList<>();
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -32,28 +42,68 @@ public class MainActivity extends AppCompatActivity {
ViewPager viewPager = binding.viewPager; ViewPager viewPager = binding.viewPager;
viewPager.setAdapter(tabsPagerAdapter); viewPager.setAdapter(tabsPagerAdapter);
initFloatingActionButtons(tabsPagerAdapter);
binding.didiCheckMenu.setOnMenuToggleListener(new FloatingActionMenu.OnMenuToggleListener() {
@Override
public void onMenuToggle(boolean opened) {
if (opened) {
buildFloatActionButtons(checkProjectList, getApplicationContext(), binding.didiCheckMenu, tabsPagerAdapter);
} else {
// 关闭时清除所有button
binding.didiCheckMenu.removeAllMenuButtons();
}
}
});
}
private void fetchNewestActionButtonData() {
Flowable<List<CheckProject>> listFlowable = DBManager.INSTANCE.checkProjectDao().listAll();
listFlowable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<List<CheckProject>>() {
@Override
public void accept(List<CheckProject> checkProjects) throws Exception {
checkProjectList = checkProjects;
}
});
}
private void initFloatingActionButtons(TabsPagerAdapter tabsPagerAdapter) {
FloatingActionMenu didiCheckMenu = binding.didiCheckMenu; FloatingActionMenu didiCheckMenu = binding.didiCheckMenu;
FloatingActionButton swimActionButton = new FloatingActionButton(this);
swimActionButton.showButtonInMenu(true); // 移除所有
swimActionButton.show(true); Context context = this;
swimActionButton.setLabelText("游泳");
swimActionButton.setImageDrawable(this.getResources().getDrawable(R.mipmap.fab_icon_swimming, getTheme())); // 拉取最新
swimActionButton.setButtonSize(FloatingActionButton.SIZE_NORMAL); fetchNewestActionButtonData();
swimActionButton.setColorNormal(this.getResources().getColor(R.color.white)); // 构建视图
swimActionButton.setColorPressed(this.getResources().getColor(R.color.white)); // buildFloatActionButtons(checkProjectList, this, binding.didiCheckMenu, tabsPagerAdapter);
swimActionButton.setTag("SWIM_TAG"); }
swimActionButton.setOnClickListener(new View.OnClickListener() { private void buildFloatActionButtons(List<CheckProject> checkProjects, Context context, FloatingActionMenu didiCheckMenu, TabsPagerAdapter tabsPagerAdapter) {
for (CheckProject project : checkProjects) {
FloatingActionButton actionButton = new FloatingActionButton(context);
actionButton.showButtonInMenu(true);
actionButton.show(true);
actionButton.setTag(project.getName() + project.getId());
actionButton.setLabelText(project.getName());
actionButton.setImageDrawable(getResources().getDrawable(R.mipmap.ic_ice_cream, getTheme()));
actionButton.setButtonSize(FloatingActionButton.SIZE_NORMAL);
actionButton.setColorNormal(getResources().getColor(R.color.white));
actionButton.setColorPressed(getResources().getColor(R.color.white));
actionButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
tabsPagerAdapter.getHomeFragment().add2Top(CheckTypeEnum.QUICK_ADD, "游泳");
// 打卡完成 关闭动画 // 打卡完成 关闭动画
didiCheckMenu.close(true); didiCheckMenu.close(true);
// 添加数据
tabsPagerAdapter.getHomeFragment().add2Top(CheckTypeEnum.QUICK_ADD, actionButton.getLabelText());
} }
}); });
didiCheckMenu.addMenuButton(swimActionButton); didiCheckMenu.addMenuButton(actionButton);
}
} }
} }

2
app/src/main/res/layout/item_list.xml

@ -10,7 +10,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/fab_icon_swimming" /> app:srcCompat="@mipmap/ic_ice_cream" />
<TextView <TextView
android:id="@+id/item_list_title_textView" android:id="@+id/item_list_title_textView"

BIN
app/src/main/res/mipmap-hdpi/ic_ice_cream.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
app/src/main/res/mipmap-mdpi/ic_ice_cream.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 B

BIN
app/src/main/res/mipmap-xhdpi/ic_ice_cream.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
app/src/main/res/mipmap-xxhdpi/ic_ice_cream.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
app/src/main/res/mipmap-xxxhdpi/ic_ice_cream.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
icon/冰激凌.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Loading…
Cancel
Save