帮我用kotlin代码写一个界面,界面是有两种分类的,登记新课时,当时剩余课时,用两个fragment来实现
时间: 2024-09-18 07:15:24 浏览: 61
在Kotlin中,你可以使用Android的`Fragment`结合`BottomNavigationView`来创建一个有两个类别(新课时和剩余课时)的界面。这里是一个基本的示例,展示了如何使用`BottomNavigationView`切换两个`Fragment`:
首先,你需要在XML布局文件中创建底部导航栏(bottom navigation bar):
```xml
<androidx.constraintlayout.widget.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:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_navigation_menu" />
<!-- 主要的 Fragment 容器 -->
<FrameLayout
android:id="@+id/mainContainer"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/bottomNavigation"
app:layout_constraintBottom_toTopOf="@+id/toolbar"
tools:context=".MainActivity" />
</androidx.constraintlayout.widget.ConstraintLayout>
```
然后在`res/menu/bottom_navigation_menu.xml`中设置菜单选项:
```xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/newLessonFragment"
android:icon="@drawable/ic_new_lesson"
android:title="@string/new_lesson" />
<item
android:id="@+id余时Fragment"
android:icon="@drawable/ic_remaining_hours"
android:title="@string/remaining_hours" />
</menu>
```
接下来,在MainActivity.kt中添加对应的Fragment管理:
```kotlin
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentTransaction
import com.google.android.material.bottomnavigation.BottomNavigationView
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private lateinit var newLessonFragment: NewLessonFragment
private lateinit var remainingHoursFragment: RemainingHoursFragment
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
newLessonFragment = NewLessonFragment()
remainingHoursFragment = RemainingHoursFragment()
bottomNavigation.setOnNavigationItemSelectedListener { item ->
val fragmentManager = supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
when (item.itemId) {
R.id.newLessonFragment -> fragmentTransaction.replace(R.id.mainContainer, newLessonFragment)
R.id余时Fragment -> fragmentTransaction.replace(R.id.mainContainer, remainingHoursFragment)
}
fragmentTransaction.commit()
true
}
// 初始显示第一个 Fragment
bottomNavigation.setSelection(0)
}
}
// 分别创建 NewLessonFragment 和 RemainingHoursFragment 类
class NewLessonFragment : Fragment() {
// 实现界面逻辑...
}
class RemainingHoursFragment : Fragment() {
// 实现界面逻辑...
}
```
在这个例子中,`NewLessonFragment` 和 `RemainingHoursFragment` 应该分别实现你们需要的功能,比如添加新的课时和查看剩余课时等。
阅读全文