- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前,我创建了一个自定义导航,在其中选择各个选项卡(信息、比萨等)后,它会将我滑动到一个新 View 。基本上是 UIPageViewController 的 UIKit 等价物。
Something different that i did is that when a selecting a section, it will also animate the scrollView to center the text.因此,例如,如果我选择“意大利面”部分,它会将我滑动到正确的 View 并将“意大利面”文本置于 ScrollView 的中心。为了实现这一点,我在 ScrollView 中嵌入了一个 ScrollViewReader 以获得对代理的访问权限,并且每次我选择该部分时,我都会调用 proxy.scrollTo
来滚动到正确的索引。但是 TabView 是如何获取到 ScrollView 的代理的呢?所以现在,当我滑动到新 View 时,下一页的文本被选中,但 scrollView 不会滚动到索引并将其居中。
如果 TabView 被滑动,有什么方法可以通知 View ?所以我可以调用 scrollTo 吗?
struct CustomNavigationView: View {
@State var activeIndex = 0
var body: some View {
VStack(spacing: 0) {
AppBar(index: self.$activeIndex)
TabView(selection: self.$activeIndex,
content: {
First()
.tag(0)
RecommendationPage()
.tag(1)
NewView(text: "Third", color: Color.orange)
.tag(2)
})
///Allows the swipe to happen
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
}
.animation(.default)
.edgesIgnoringSafeArea(.all)
}
}
struct AppBar: View {
@Binding var index: Int
var sections = ["Episode", "Related Shows", "About", "Info", "Pizza", "Hamburger", "Pasta", "I dont even know"]
var body: some View {
VStack(alignment: .leading) {
Text("Home")
...
ScrollView(.horizontal, showsIndicators: false, content: {
ScrollViewReader { proxy in
VStack(alignment: .leading) {
//Underline bar
ZStack(alignment: .leading) {
...
}
///Sections
HStack(spacing: tabsSpacing) {
ForEach(0..<sections.count) { i in
Button(action: {
self.index = i
withAnimation(.linear) {
///This checks ensures that when we select last 2 items, scrollView doesnt try to align selectedIndex to middle
if i < sections.count - 2 {
proxy.scrollTo(i, anchor: .center)
} else if i == sections.count - 2 {
proxy.scrollTo(i)
} else {
proxy.scrollTo(i, anchor: .trailing)
}
}
}, label: {
Text(sections[i])
...
})
.id(i)
}
}
}
}
})
最佳答案
有一个开源库可以解决您的问题。可滚动样式使您选择的选项卡居中。
https://github.com/xmartlabs/PagerTabStripView#scrollable-style
关于SwiftUI 如何在滑动 TabView 时访问 ScrollViewReader 的代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66896932/
我在那个 tab view 里面有一个 tab view,在那个 tab view` 里面有另一个 tab view,还有一个警告框。当我尝试打开它时,我的应用程序被强制关闭。 但同样的 AlertD
在 SwiftUI 中,TabView 必须是 Root View 。因此,您不能使用 NavigationLink 导航到 TabView。比如说我的应用程序中有四个屏幕。 屏幕 A 是一个包含屏幕
我有这门课: class PageViewModel:ObservableObject { @Published var cars = [Car]() func delete(_ ca
有没有办法在 TabView 中禁用透明度为 iOS 15 ?如果我的 List没有填满整个屏幕 TabView背景是透明的,我希望始终显示 TabView背景。 最佳答案 感谢@Asperi 为我指
我目前在我的应用程序上面临 pb。我想为由 SwiftUI TabView 控制的项目的插入和删除设置动画。 这是我能想到的最简单的重现问题的 View struct ContentView: Vie
我有一个 TabView SwiftUI 中有两个标签生命周期应用,其中一个具有复杂的 View 结构:NavigationView里面有很多 subview ,即:NavigationLink s
我认为我错过了一些简单的东西,但我无法弄清楚它到底是什么。 我正在尝试使用 UITabViewController 设置一个应用程序,其中一个选项卡将具有 UITableView 和 UISearch
我正在使用 TabVIew,我有两个问题: 1.如何去除 TabView 标题的边框底部? 2. 如何在 TabView 标题中的项目之间添加分隔符? 谢谢, 陈 最佳答案 您既不能删除底部颜色,也不
我有一个简单的 TabView: TabView { NavigationView { VStack { NavigationLink(destinat
我创建了一个带有多个选项卡的应用程序,每个选项卡都有一个 webview。 我的网页 View : struct WebView : UIViewRepresentable { let req
我想创建一个 Activity,它在顶部有一个标题,在它下面有一个 TabHost。这是我的 XML 文件中的内容
我刚刚开始使用 Nativescript,所有这些工作给我留下了深刻的印象! 作为将 VueJS Web 应用程序迁移到移动设备的项目的一部分,我正在尝试使用 tabview 并理解这一点。我似乎无法
我在 TabView 类中有这段代码: package jungle.timer; import com.example.jungletimer.R; import android.os.Bundle
我想在运行时在 android 中单击该选项卡来更改选项卡 View 。 当我在“收藏夹”选项卡中单击时,此选项卡图像会自动像“主页”选项卡一样。 请帮助我。 像这样之前 之后 请举例... 提前致谢
我需要使用 java 代码在运行时创建选项卡 View 。 注意: 不使用 xml 设计 最佳答案 在 XML 中创建 TabHost、TabWidget,然后在运行时添加 TAbHost.TabSp
我正在尝试在操作栏中创建一个自定义选项卡 View ,如下所示: 我得到了这个观点: 我想改变 tabviews 指示器的背景,这样背景颜色就变得不可见,我们在选定的 tabview 指示器下有一条绿
我可以在工具栏中创建选项卡 View ,就像应用程序照片 (Yosemite) 一样吗?我只想要一个分段按钮,没有图像。我尝试将 TabView Controller 的样式设置为“工具栏”,但它也会
我想使用 PrimeFaces TabView 组件在选项卡中显示来 self 们服务器的数据。我需要三个选项卡来显示具有不同数据的三个表。 如果我这样写就可以了: // logic
我已经完全改变了我的代码。但是事件索引仍然显示出问题。有时它会被调用,有时它不会。 下面的 xhtml 代码有什么问题? Admin Panel
SwiftUI 中的 View 默认具有透明背景。这通常意味着它们具有白色背景,因为这是您应用的默认背景颜色。但是,这也意味着您可以使用 ZStack更改整个应用程序的背景颜色,除非您明确设置自己的背
我是一名优秀的程序员,十分优秀!