Я новичок в программировании Android Мне нужно знать, как добавить два столбца в список, подобный этому.
Что вызвано? Нужно ли мне изменять только файл 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
Для этого вам нужно установить 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 установлен как менеджер компоновки сетки.
Пожалуйста, используйте Gridview для этого, а не listview. ИЛИ вы можете использовать recyclerview, в котором установите менеджер компоновки как Gridview.