Как добавить две колонки для Android ListView

Я новичок в программировании Android Мне нужно знать, как добавить два столбца в список, подобный этому.

Как добавить две колонки для Android ListView

Что вызвано? Нужно ли мне изменять только файл XML или мне нужно будет также изменить файл Java? Это мой Кодекс!

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:background = "@android:color/transparent"
android:descendantFocusability = "blocksDescendants"
android:orientation = "horizontal"
android:layout_weight = "7"
android:padding = "8dp">

<LinearLayout
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:orientation = "vertical"
    android:gravity = "center"
    android:padding = "4dp">

    <ImageView
        android:id = "@+id/galleryImage"
        android:layout_width = "70dp"
        android:layout_height = "50dp"
        />
</LinearLayout>

<LinearLayout
    android:layout_width = "0dp"
    android:layout_height = "wrap_content"
    android:orientation = "vertical"
    android:layout_weight = "7"
    >
    <TextView
        android:id = "@+id/title"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:shadowColor = "#000"
        android:shadowRadius = "1.0"
        android:textColor = "#666666"
        android:textSize = "17sp"
        android:layout_marginBottom = "5dp"
        android:maxLines = "2"
        android:scrollHorizontally = "true"
        android:ellipsize = "end"
        android:text = "This is news title"/>

    <TextView
        android:id = "@+id/sdetails"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:textColor = "#777777"
        android:textSize = "16sp"
        android:maxLines = "2"
        android:minLines = "2"
        android:scrollHorizontally = "true"
        android:ellipsize = "end"
        android:text = "This is news description bla bla bla..."/>
    <LinearLayout
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:orientation = "horizontal"
        android:weightSum = "1">
        <LinearLayout
            android:layout_width = "0dp"
            android:layout_height = "wrap_content"
            android:layout_weight = "1"
            android:orientation = "horizontal">
            <TextView
                android:id = "@+id/author"
                android:textSize = "15sp"
                android:textColor = "#42A5F5"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:text = "News Author"/>
        </LinearLayout>
        <TextView
            android:id = "@+id/time"
            android:gravity = "right"
            android:textSize = "14sp"
            android:textColor = "#42A5F5"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:text = "Time"/>
    </LinearLayout>
</LinearLayout>
</LinearLayout>

Пожалуйста, используйте Gridview для этого, а не listview. ИЛИ вы можете использовать recyclerview, в котором установите менеджер компоновки как Gridview.

Saurabh Vadhva 21.03.2018 06:32

Используйте для этого Gridview

Quick learner 21.03.2018 06:35
0
2
114
5

Ответы 5

Для этого вам нужно установить LayoutManager в качестве менеджера компоновки сетки.

вы можете попробовать использовать приведенный ниже код для изменений xml и использовать Gridview

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    android:layout_width = "fill_parent"
    android:layout_height = "wrap_content"
    android:background = "@android:color/transparent"
    android:descendantFocusability = "blocksDescendants"
    android:orientation = "vertical"
    android:padding = "8dp">

    <LinearLayout
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:orientation = "vertical"
        android:gravity = "center"
        android:padding = "4dp">

        <ImageView
            android:id = "@+id/galleryImage"
            android:layout_width = "70dp"
            android:layout_height = "50dp"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:orientation = "vertical"
        >
        <TextView
            android:id = "@+id/title"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:shadowColor = "#000"
            android:shadowRadius = "1.0"
            android:textColor = "#666666"
            android:textSize = "17sp"
            android:layout_marginBottom = "5dp"
            android:maxLines = "2"
            android:scrollHorizontally = "true"
            android:ellipsize = "end"
            android:text = "This is news title"/>

        <TextView
            android:id = "@+id/sdetails"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:textColor = "#777777"
            android:textSize = "16sp"
            android:maxLines = "2"
            android:minLines = "2"
            android:scrollHorizontally = "true"
            android:ellipsize = "end"
            android:text = "This is news description bla bla bla..."/>
        <LinearLayout
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:orientation = "horizontal"
            android:weightSum = "1">
            <LinearLayout
                android:layout_width = "0dp"
                android:layout_height = "wrap_content"
                android:layout_weight = "1"
                android:orientation = "horizontal">
                <TextView
                    android:id = "@+id/author"
                    android:textSize = "15sp"
                    android:textColor = "#42A5F5"
                    android:layout_width = "wrap_content"
                    android:layout_height = "wrap_content"
                    android:text = "News Author"/>
            </LinearLayout>
            <TextView
                android:id = "@+id/time"
                android:gravity = "right"
                android:textSize = "14sp"
                android:textColor = "#42A5F5"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:text = "Time"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

вы также можете использовать режим ресайклера, чтобы показать свой макет в двух столбцах, используя набор Recyclerview с диспетчером макетов как -

public class YourClass extends AppCompatActivity {
RecyclerView rv;
RecyclerView.LayoutManager lm;


// Create custom adapter MyRecyclerView extends to RecyclerView.Adapter
   implements all methods and bind the data inside OnBindView() method on 
   custom design

MyRecyclerView adapter; 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_your_activity);
    rv =(RecyclerView) findViewById(R.id.rv_id);
    rv .setHasFixedSize(true)
    lm = new GridLayoutManager(context, 2);
    rv .setLayoutManager(lm);
    // get the data of content to be bind on recyclerview with adapter
    adapter = new MyRecyclerView(context, data);
    rv.setAdapter(adapter);

    adapter.notifyDataSetChanged();

}
}

Используйте Row Layout и gridview для лучшего результата
вы можете следовать шагу со следующего веб-сайта, это лучший, https://www.tutorialspoint.com/android/android_grid_view.htm

Вы можете исправить это, используя Recyclerview, где LayoutManager установлен как менеджер компоновки сетки.

Другие вопросы по теме