码迷,mamicode.com
首页 > 移动开发 > 详细

安卓学习06

时间:2020-02-06 22:45:00      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:port   getmenu   and   独立   image   action   mic   viewgroup   ima   


今日学习了底部导航功能。

 

1、独立fragment

需要三个独立的fragment,建立三个fragment布局。

技术图片

2、navigation

由于三个fragment直接没有递进关系,所以三个fragment平行即可。

技术图片

3、menu的设计

技术图片

  • 菜单中icon可以选择图标。

  • 每个菜单的id要和fragment的id一致。

4、主页面的布局

技术图片

  • bottomNavigationView属性中的menu选择我们设计的菜单。

  • 上方的是NavHostFragment。

5、主界面的逻辑代码

package com.example.bottomnavigation;
?
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
?
import android.os.Bundle;
?
import com.google.android.material.bottomnavigation.BottomNavigationView;
?
public class MainActivity extends AppCompatActivity {
?
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
        NavController navController = Navigation.findNavController(this,R.id.fragment);
        AppBarConfiguration configuration = new AppBarConfiguration.Builder(bottomNavigationView.getMenu()).build();
        NavigationUI.setupActionBarWithNavController(this,navController,configuration);
        NavigationUI.setupWithNavController(bottomNavigationView,navController);
    }
}

 

6、各界面的小功能(view的动画)

以第一个界面为例做旋转动画

package com.example.bottomnavigation;
?
import androidx.lifecycle.ViewModelProviders;
?
import android.animation.ObjectAnimator;
import android.os.Bundle;
?
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
?
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
?
public class firstFragment extends Fragment {
?
    private FirstViewModel mViewModel;
    private ImageView imageView;
    public static firstFragment newInstance() {
        return new firstFragment();
    }
?
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.first_fragment, container, false);
        imageView = view.findViewById(R.id.imageView);
        return view;
    }
?
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mViewModel = ViewModelProviders.of(this).get(FirstViewModel.class);
        final ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(imageView,"rotation",0,0);
        objectAnimator.setDuration(300);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!objectAnimator.isRunning()){
                    objectAnimator.setFloatValues(imageView.getRotation(),imageView.getRotation() - 100);
                    objectAnimator.start();
                }
            }
        });
    }
?
}

 

 

安卓学习06

标签:port   getmenu   and   独立   image   action   mic   viewgroup   ima   

原文地址:https://www.cnblogs.com/wuren-best/p/12271171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!