Tôi có rất nhiều mục trên màn hình và tôi cần sử dụng thanh cuộn để người dùng có thể cuộn xuống. Tuy nhiên, cuộn không thể nhìn thấy hoặc nó không hoạt động. Làm thế nào có thể thêm một thanh cuộn vào một LinearLayout
?
Tôi có rất nhiều mục trên màn hình và tôi cần sử dụng thanh cuộn để người dùng có thể cuộn xuống. Tuy nhiên, cuộn không thể nhìn thấy hoặc nó không hoạt động. Làm thế nào có thể thêm một thanh cuộn vào một LinearLayout
?
Câu trả lời:
Bao bọc bố cục tuyến tính với một <ScrollView>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
</LinearLayout>
Lưu ý: fill_parent không được dùng nữa và được đổi tên thành match_parent trong API cấp 8 trở lên.
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
</ScrollView>
Điều này có thể được thực hiện bằng cách sử dụng thẻ <ScrollView>
. Đối với ScrollView , một điều bạn phải nhắc rằng, ScrollView phải có một con .
Nếu bạn muốn bố trí đầy đủ của bạn có thể cuộn được thì hãy thêm <ScrollView>
ở trên cùng. Kiểm tra ví dụ được đưa ra dưới đây.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
Nhưng nếu bạn muốn một phần bố cục của bạn có thể cuộn được thì hãy thêm vào <ScrollView>
trong phần đó. Kiểm tra ví dụ được đưa ra dưới đây.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="400dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
</LinearLayout>
Đây là cách tôi đã làm nó bằng cách dùng thử và lỗi.
ScrollView - (the outer wrapper).
LinearLayout (child-1).
LinearLayout (child-1a).
LinearLayout (child-1b).
Vì ScrollView có thể chỉ có một con, nên đứa trẻ đó là một bố cục tuyến tính. Sau đó, tất cả các kiểu bố trí khác xảy ra trong bố trí tuyến tính đầu tiên. Tôi đã không cố gắng bao gồm một bố cục tương đối, nhưng họ lái xe cho tôi hạt dẻ vì vậy tôi sẽ đợi cho đến khi sự tỉnh táo của tôi trở lại.
bạn cần sử dụng thuộc tính sau và đặt nó trong bố cục tuyến tính
<LinearLayout ...>
<scrollView ...>
</scrollView>
</LinearLayout>
Bạn cần đặt ScrollView làm con đầu tiên của tệp Bố cục và bây giờ đặt linearlayout của bạn vào trong đó. Bây giờ, android sẽ quyết định dựa trên nội dung và kích thước thiết bị có sẵn để hiển thị có thể cuộn hay không.
Đảm bảo linearlayout không có anh chị em vì ScrollView không thể có nhiều hơn một con.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<---------Content Here --------------->
</LinearLayout>
</ScrollView>
</LinearLayout>
Bạn có thể thêm một thuộc tính trong linearLayout: android:scrollbars="vertical"