aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh hoạ style và layout trong React Native với màn hình mobile, spacing và typography

Style và Layout trong React Native: nền móng để dựng UI mobile

admin by admin
22/07/2026
in Lập trình Mobile, React Native
0
586
SHARES
3.3k
VIEWS
Summarize with ChatGPTShare to Facebook

Sau khi đã hiểu component, props, state và hooks, bước tiếp theo rất tự nhiên là học style và layout. Đây là phần quyết định app của bạn trông có “ra mobile” hay không. Một màn hình có logic đúng nhưng spacing lệch, chữ khó đọc, nút khó bấm thì trải nghiệm vẫn chưa ổn.

React Native không dùng CSS file như web truyền thống. Bạn vẫn viết các thuộc tính quen thuộc như backgroundColor, padding, fontSize, nhưng chúng được khai báo bằng object JavaScript và gắn vào component qua prop style.

Style trong React Native khác CSS web thế nào?

Điểm khác dễ thấy nhất là tên thuộc tính dùng camelCase. Ví dụ background-color trên web trở thành backgroundColor, font-size trở thành fontSize. Giá trị số thường được hiểu là density-independent pixels, nên bạn không cần viết px.

import { StyleSheet, Text, View } from 'react-native';

function WelcomeCard() {
  return (
    <View style={styles.card}>
      <Text style={styles.title}>React Native</Text>
      <Text style={styles.subtitle}>Dựng UI mobile bằng component và style.</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  card: {
    padding: 16,
    borderRadius: 12,
    backgroundColor: '#ffffff',
  },
  title: {
    fontSize: 22,
    fontWeight: '700',
    color: '#111827',
  },
  subtitle: {
    marginTop: 8,
    fontSize: 15,
    lineHeight: 22,
    color: '#6b7280',
  },
});

View, Text và Image là ba nền móng

View giống một khối container. Bạn dùng nó để nhóm các phần giao diện, tạo nền, padding, border, layout. Text dùng cho chữ. Trong React Native, mọi chữ hiển thị phải nằm trong Text. Image dùng cho ảnh local hoặc ảnh từ URL.

Người mới hay mắc lỗi đặt text trực tiếp trong View, hoặc cố dùng tư duy div/span từ web. Hãy tập nghĩ bằng bộ core component của React Native trước, rồi sau đó mới tạo custom component như ArticleCard, PrimaryButton, ProfileHeader.

Spacing quan trọng hơn bạn nghĩ

UI mobile dễ đọc thường bắt đầu từ spacing tốt. Thay vì đặt margin/padding lung tung, hãy dùng một hệ spacing đơn giản: 4, 8, 12, 16, 24, 32. Khi cả app dùng cùng nhịp spacing, màn hình nhìn gọn hơn và dễ bảo trì hơn.

const spacing = {
  xs: 4,
  sm: 8,
  md: 16,
  lg: 24,
  xl: 32,
};

Bạn không cần tạo design system lớn ngay từ đầu. Chỉ cần thống nhất vài con số và dùng lại nhất quán, UI đã bớt rối rất nhiều.

Đừng style tất cả inline

Inline style tiện cho thử nhanh, nhưng nếu dùng quá nhiều, component sẽ dài và khó đọc. Với style dùng nhiều lần hoặc style có nhiều thuộc tính, hãy đưa vào StyleSheet.create.

// Tạm ổn khi thử nhanh
<Text style={{ fontSize: 18, fontWeight: '700' }}>Tiêu đề</Text>

// Dễ bảo trì hơn khi UI lớn lên
<Text style={styles.title}>Tiêu đề</Text>

Layout nên bắt đầu từ nội dung

Trước khi viết style, hãy nhìn màn hình và chia thành các vùng: header, content, action, footer. Sau đó mỗi vùng lại chia thành các component nhỏ hơn. Cách này giúp bạn tránh tình trạng “chỉnh từng pixel” mà không biết cấu trúc tổng thể đang đi đâu.

Lỗi thường gặp

Lỗi đầu tiên là bê nguyên CSS web sang React Native. Lỗi thứ hai là thiếu spacing nhất quán. Lỗi thứ ba là đặt quá nhiều style inline. Lỗi thứ tư là không test trên nhiều kích thước màn hình, khiến UI đẹp ở máy này nhưng vỡ ở máy khác.

Kết luận

Style và layout là nền móng để React Native app nhìn chuyên nghiệp. Hãy bắt đầu bằng core component, StyleSheet, spacing nhất quán và cấu trúc màn hình rõ ràng. Khi nền này ổn, Flexbox sẽ trở thành công cụ rất mạnh thay vì một thứ gây đau đầu.

Nguồn tham khảo: React Native: Style, View, Text, Image.

SummarizeShare234
admin

admin

Related Stories

Minh hoạ style và layout trong React Native với màn hình mobile, spacing và typography

React Native Text: rút gọn hai dòng và vẫn có đường đọc đầy đủ

by Suong Nguyen
03/11/2026
0

Kết hợp numberOfLines, ellipsizeMode tail và nút mở rộng để rút gọn nội dung theo layout thay vì cắt chuỗi bằng số ký tự.

Minh họa môi trường phát triển React Native với laptop, Android emulator và iOS simulator

Android INVISIBLE và GONE: ẩn nội dung có cần giữ chỗ không?

by Suong Nguyen
03/11/2026
0

Dùng LinearLayout thử ba trạng thái VISIBLE, INVISIBLE và GONE để chọn cách ẩn một vùng thông tin theo nhu cầu giữ khoảng trống.

Minh hoạ style và layout trong React Native với màn hình mobile, spacing và typography

React Native onLayout: đo vùng card thay vì lấy chiều rộng cửa sổ

by Suong Nguyen
02/11/2026
0

Đọc nativeEvent.layout ở đúng View, giữ số đo tách khỏi kích thước đầu vào và phân biệt đơn vị layout với pixel ảnh.

Minh họa môi trường phát triển React Native với laptop, Android emulator và iOS simulator

Android getString: dùng placeholder có thứ tự để dịch nguyên câu

by Suong Nguyen
02/11/2026
0

Đưa cả câu vào string resource, dùng %1$s và %2$s để bản dịch đổi vị trí dữ liệu mà không đổi thứ tự arguments trong Kotlin.

Next Post
Minh hoạ Flexbox trong React Native với row column justifyContent và alignItems

Flexbox trong React Native cho người mới: row, column và căn chỉnh UI

0 0 votes
Article Rating
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • React Native Text: rút gọn hai dòng và vẫn có đường đọc đầy đủ
  • Vì sao map(parseInt) biến index thành radix?
  • Android INVISIBLE và GONE: ẩn nội dung có cần giữ chỗ không?

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • Phỏng vấn
  • React Native
  • Uncategorized

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply