标签: tabview

如何在Android中保存和恢复ListView位置

我有tabView,在每个标签中显示列表.当我在一个选项卡中滚动时,切换到另一个选项卡并返回到上一个选项卡,位置返回到顶部而不是显示上一个滚动位置.我该如何实现这一目标?需要知道如何使用onSaveInstanceState和onRestoreInstanceState来保存位置并使用保存的位置来显示上一个滚动位置.

提前致谢.


谢谢大家的回复.我尝试了所有的解决方案,但遇到了其他问题.基本上我面临的问题如下.

当我启动我的应用程序时,我有一个listview作为我的第一个活动.当我单击列表项时,它会启动包含3个选项卡的选项卡活动.所有3个选项卡都使用名为ListActivity的相同活动.但是3个标签包含不同的数据.我的问题是当我在选项卡之间切换时如何保留列表的位置.通过提供上述解决方案,当我在一个选项卡中更改位置时,它也会影响其余选项卡.例如,如果我在第一个选项卡中的位置6,则此位置将设置为第二个和第三个选项卡,以及我对所有3个选项卡使用相同的ListActivity.我不被允许分享代码.所以必须这么长时间输入问题.创建的选项卡数量也是动态的.它可能是3或4或5.但是所有选项卡都使用1个ListActivity.

任何人都可以给我一个如何实现这一目标的例子.1.单个ListActivity在多个选项卡中使用.2.在影响其他选项卡后,将光标位置保留在选项卡中.

您的解决方案表示赞赏.提前致谢.

android listview tabview

6
推荐指数
2
解决办法
2万
查看次数

在 SwiftUI 中处理 NavigationView 内的 TabView 的最佳方法

我正在使用 SwiftUI 开发 Swift 应用程序。

我有这样的设置,我将 TabView 放入 NavigationView 中,并在 tabView 上使用 navigationBarTitle。我这样做是因为如果我将 NavigationView 放入 TabView 中,当我转到 NavigationLink 时,我无法使 Tab 栏消失:目前看来对于 swiftUI 来说这是不可能的。

我的设置当前的问题是,由于我将 .navigationBarTitle 放在 TabView 上,因此当我更改选项卡视图时标题不会更改,并且由于某种原因无法重置子视图上的 .navigationBarTitle。

这是一个代码来解释我所说的:

内容视图:

NavigationView {
  TabView {
    SomeSubView().tabItem() { Text("SomeSubView") }
    Text("dummy2").tabItem() { Text("dummy2") }
    Text("dummy3").tabItem() { Text("dummy3") }
  }.navigationBarTitle("hello")
}
Run Code Online (Sandbox Code Playgroud)

一些子视图:

List(somearray) { element in
  NavigationLink(destination: elementDetails()) {
    SomeRowView()
  }
}
Run Code Online (Sandbox Code Playgroud)

这是预览(上面的代码不完全是我的代码,只是一个示例):

预览

现在我想将 .navigationBarTitle 放入 SomeSubView() 中,如下所示:

List(somearray) { element in
  NavigationLink(destination: elementDetails()) {
    SomeRowView()
  }
}.navigationBarTitle("title2")
Run Code Online (Sandbox Code Playgroud)

而不是为 …

ios tabview swift navigationview swiftui

6
推荐指数
0
解决办法
4475
查看次数

如何使用 Flutter GetX 构建 TabView

我正在尝试使用 Flutter 和GetX构建一个用于状态管理的应用程序,在我的一个页面中,我需要在页面中间构建一个 TabView 小部件,我已经找到了很多解释如何构建 TabView 的内容小部件,如这篇文章这篇文章,但所有这些都扩展了一个带有SingleTickerProviderStateMixin状态控制器。

据我了解阅读文档,我不应该像那样使用 StatefulWidgets 和状态,但我无法弄清楚如何使用 GetX 架构来制定解决方案。

我已经在我的页面中尝试过:

class CourseDetailPage extends StatelessWidget {
  final TabController _tabController = Get.put(TabController(vsync: null, length: 2));
}
Run Code Online (Sandbox Code Playgroud)

class CourseDetailPage extends StatelessWidget {
  final TabController _tabController = TabController(vsync: null, length: 2);
}  
Run Code Online (Sandbox Code Playgroud)

但是 TabController 的 VSYNC 参数不能为空,我不知道我如何无法获得 TickerProvider 来填充它。

tabview flutter flutter-layout flutter-get

6
推荐指数
1
解决办法
5498
查看次数

在 SwiftUI 中使用 TabView 时,第一个选项卡栏按钮出现两次

正如您从屏幕截图中看到的,“语言”选项卡出现了两次。

第一个 TabView 选项卡出现两次

我有以下 HostingTabBar 代码,该代码在应用程序启动时调用:


struct HostingTabBar: View {
    
    private enum Tab: Hashable {
        case language
        case canvas
        case homework
        case test
        case more
    }
    
    @State private var selectedTab: Tab = .language
    
    var body: some View {
        TabView(selection: $selectedTab) {
        LanguageView()
            .tag(0)
            .tabItem {
                Text("Language")
                Image("language")
            }
        CanvasView()
            .tag(1)
            .tabItem {
                Text("Canvas")
                Image("canvas")
            }
        HomeworkView()
            .tag(2)
            .tabItem {
                Text("Homework")
                Image("homework")
            }
        TestView()
            .tag(3)
            .tabItem {
                Text("Test")
                Image("test")
            }
        MoreView()
            .tag(4)
            .tabItem {
                Text("More")
                Image("more")
            }
        }
        .accentColor(nil)
    }
}

struct HostingTabBar_Previews: …
Run Code Online (Sandbox Code Playgroud)

tabbar tabview swift swiftui

6
推荐指数
1
解决办法
1787
查看次数

SwiftUI - 禁用滑动时按钮突出显示

我正在处理 SwiftUI 中的一个简单按钮,布局如下:

TabView {
  ForEach(...) { ...
    Button {...}
      label {...}
  }
}
Run Code Online (Sandbox Code Playgroud)

当我点击(但不释放)按钮时,它会默认突出显示该按钮;这可以。但是,如果我将这些按钮排列在分页选项卡视图中,则通过滑动来导航页面会突出显示这些按钮,这是我不想要的。

有没有办法禁用这个突出显示?最好,我想在点击按钮时保留突出显示,但在滑动时不保留突出显示,但如果我必须完全禁用它也没关系。

button tabview swift swiftui

6
推荐指数
0
解决办法
159
查看次数

5
推荐指数
2
解决办法
8853
查看次数

滚动时根据回收站视图标题更改选项卡

在此处输入图片说明

当我们滚动浏览器视图时,我正在尝试更改选项卡。

我已经在单个回收商视图中列出了这些项目。

因此,当我到达每个部分的标题(例如早餐然后早餐标签应该处于活动状态)时,如何相应地更改标签?

上面的 gif 解释了我的查询。请建议我一个解决方案。

java android tabview android-recyclerview

5
推荐指数
1
解决办法
986
查看次数

禁用 TabView SwiftUI 中的项目

如何将项目设置为禁用(不可点击)但在我的 tabView 中可见?

TabView(selection: $selectedTab) {
            Settings()
                .tabItem {
                    Image(systemName: "gearshape.fill")
                    Text("Settings")
                }.tag(1)
                 .disabled(true) // Not Working
          
Run Code Online (Sandbox Code Playgroud)

tabview swiftui

5
推荐指数
2
解决办法
3306
查看次数

SwiftUI 中的双向无限 PageView

我正在尝试制作一个双向 TabView (带有.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))),其数据源会随着时间的推移而改变。

下面的代码描述了预期的结果:

class TabsViewModel: ObservableObject {
    @Published var items = [-2, -1, 0, 1, 2]
    @Published var selectedItem = 2 {
        didSet {
            if let index = items.firstIndex(of: selectedItem), index >= items.count - 2 {
                items = items + [items.last! + 1]
                items.removeFirst()
            }
            
            if let index = items.firstIndex(of: selectedItem), index <= 1 {
                items = [items.first! - 1] + items
                items.removeLast()
            }
        }
    }
}

struct TabsView: View {
    @StateObject var vm = TabsViewModel() …
Run Code Online (Sandbox Code Playgroud)

pageviews ios tabview swift swiftui

5
推荐指数
2
解决办法
2963
查看次数

SwiftUI 中的垂直分页

我正在通过 TabView 创建一个垂直分页视图

一切都很完美,除了奇怪的右边距,如下图所示。

这是我使用的代码。如果有人能指出根本原因,我将不胜感激。

在此输入图像描述

import SwiftUI

fileprivate struct VCompatibleTabView<Content: View>: View {
    let proxy: GeometryProxy
    let content: Content
    
    init(proxy: GeometryProxy, @ViewBuilder content: () -> Content) {
        self.proxy = proxy
        self.content = content()
    }
    
    var body: some View {
        if #available(iOS 15.0, *) {
            // Credit to Gary Tokmen for this bit of Geometry Reader code: https://blog.prototypr.io/how-to-vertical-paging-in-swiftui-f0e4afa739ba
            TabView {
                content
                .rotationEffect(.degrees(-90)) // Rotate content
                .frame(
                    width: proxy.size.width,
                    height: proxy.size.height
                )
            }
            .frame(
                width: proxy.size.height, // Height & width swap …
Run Code Online (Sandbox Code Playgroud)

paging tabview swiftui

5
推荐指数
1
解决办法
1983
查看次数