Home > Enterprise >  How to center Text within a List?
How to center Text within a List?

Time:02-07

I want to center Text in a List, I want to see the text in Text in the middle. I tried some solutions, but the text remains leading.

I was expecting this to work:

struct ContentView: View {
    var body: some View {
        List {
            Text("Hello, world!")
               .frame(alignment: .center)
        }
    }
}

The text remains leading. I also tried this, but not working:

.multilineTextAlignment(.center)

The only solution is this:

HStack(alignment: .center) {
    Spacer()
    Text("Hello, world!")
    Spacer()
}

But I can not imagine this is the right way, I mean I add literally 3 views just to center a simple text. Is there a simpler solution? When I have a large text and I use .multilineTextAlignment(.center), the text is centered. I want it to work with 1 line of text.

CodePudding user response:

You need to give all width for frame, otherwise it just fits text, so alignment has no effect.

This should work:

    List {
        Text("Hello, world!")
           .frame(maxWidth: .infinity, alignment: .center)
    }
  •  Tags:  
  • Related