gpt4 book ai didi

android - 如何创建垂直的 BottomNavigationView android?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:46 25 4
gpt4 key购买 nike

我有一个 Activity ,顶部有 4 个 fragment ,底部有 4 个项目的 BottomNavigationView。它在移动设备上运行良好。当我使用带 LANDASCAPE 的平板电脑时,我想将 BottomNavigationView 移动到 Activity 的左侧,垂直方向如下所示。

这是否可以使用 BottomNavigationView 实现,还是我应该使用 NavigationMenu android。

enter image description here

最佳答案

好吧,我设法做到了,你想要 BottomNavigationView 的东西,通过一些调整方向变化和移动一些 View 。首先,为了进入方向更改,我将其添加到 AndroidManifest 中的 Activity 标签

android:configChanges="orientation|screenSize"

在我的 Activity 中,我添加了以下内容

 @Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
BottomNavigationView navigation= (BottomNavigationView) findViewById(R.id.navigation);
navigation.setRotation(90f);
navigation.getLayoutParams().width=480;
navigation.requestLayout();
navigation.setY(600f);
navigation.setX(-435f);
// navigation.requestLayout();
BottomNavigationMenuView menuView = (BottomNavigationMenuView) navigation.getChildAt(0);
for (int i = 0; i < menuView.getChildCount(); i++) {
final View iconView = menuView.getChildAt(i);
iconView.setRotation(-90f);
}
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
recreate();
}
}

我的 XML 是

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
android:text="@string/title_home"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation" />

</android.support.constraint.ConstraintLayout>

当然,您必须根据您的手机需要更改navigation.getLayoutParams().width、setX 和setY。您可以创建一个函数来计算位置。抱歉,今天是 10:30 并且整晚都在编码所以要休息,所以无法编写该功能。但如果你愿意,我会写那个函数。它是我为我的手机 Vivo Y51L 工作的,你可以看看截图。

截图 Landscape Portrait

关于android - 如何创建垂直的 BottomNavigationView android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49234672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com