中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發如何實現橫向列表GridView橫向滾動

發布時間:2021-07-10 18:54:10 來源:億速云 閱讀:1262 作者:小新 欄目:移動開發

小編給大家分享一下Android開發如何實現橫向列表GridView橫向滾動,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

具體如下:

Android 橫向列表實現,可左右滑動,如下圖

Android開發如何實現橫向列表GridView橫向滾動

1. 主界面布局代碼:activity_main.xml

a.包裹HorizontalScrollView控件是GirdView橫向滾動的基本條件
b.GirdView外包裹LinearLayout是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="fill_parent"
 android:orientation="vertical" >
 <HorizontalScrollView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_margin="5dp" >
  <LinearLayout
   android:layout_width="wrap_content"
   android:layout_height="fill_parent"
   android:layout_margin="10dp" >
   <GridView
    android:id="@+id/grid"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:numColumns="auto_fit"
    android:stretchMode="spacingWidthUniform" >
   </GridView>
  </LinearLayout>
 </HorizontalScrollView>
</LinearLayout>

2.主界面GridView列表子項布局文件:list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/itemlayout"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:orientation="vertical" >
 <ImageView
  android:id="@+id/ItemImage"
  android:layout_width="80.0dip"
  android:layout_height="80.0dip"
  android:layout_gravity="center_horizontal"
  android:src="@drawable/china" >
 </ImageView>
 <TextView
  android:id="@+id/tvCity"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  android:text="Title"
  android:textColor="#000000" >
 </TextView>
 <TextView
  android:id="@+id/tvCode"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  android:text="Info"
  android:textColor="#000000" >
 </TextView>
</LinearLayout>

3.java實現代碼:MainActivity.java

package com.example.horizontallistview;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
/***
 *
 * @author ymw
 */
public class MainActivity extends Activity {
 List<CityItem> cityList;
 RelativeLayout itmel;
 GridView gridView;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  LayoutInflater layoutInflater = (LayoutInflater) this
    .getSystemService("layout_inflater");
  gridView = (GridView) findViewById(R.id.grid);
  setData();
  setGridView();
 }
 /**設置數據*/
 private void setData() {
  cityList = new ArrayList<CityItem>();
  CityItem item = new CityItem();
  item.setCityName("深圳");
  item.setCityCode("0755");
  cityList.add(item);
  item = new CityItem();
  item.setCityName("上海");
  item.setCityCode("021");
  cityList.add(item);
  item = new CityItem();
  item.setCityName("廣州");
  item.setCityCode("020");
  cityList.add(item);
  item = new CityItem();
  item.setCityName("北京");
  item.setCityCode("010");
  cityList.add(item);
  item = new CityItem();
  item.setCityName("武漢");
  item.setCityCode("027");
  cityList.add(item);
  item = new CityItem();
  item.setCityName("孝感");
  item.setCityCode("0712");
  cityList.add(item);
  cityList.addAll(cityList);
 }
 /**設置GirdView參數,綁定數據*/
 private void setGridView() {
  int size = cityList.size();
  int length = 100;
  DisplayMetrics dm = new DisplayMetrics();
  getWindowManager().getDefaultDisplay().getMetrics(dm);
  float density = dm.density;
  int gridviewWidth = (int) (size * (length + 4) * density);
  int itemWidth = (int) (length * density);
  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    gridviewWidth, LinearLayout.LayoutParams.FILL_PARENT);
  gridView.setLayoutParams(params); // 設置GirdView布局參數,橫向布局的關鍵
  gridView.setColumnWidth(itemWidth); // 設置列表項寬
  gridView.setHorizontalSpacing(5); // 設置列表項水平間距
  gridView.setStretchMode(GridView.NO_STRETCH);
  gridView.setNumColumns(size); // 設置列數量=列表集合數
  GridViewAdapter adapter = new GridViewAdapter(getApplicationContext(),
    cityList);
  gridView.setAdapter(adapter);
 }
 /**GirdView 數據適配器*/
 public class GridViewAdapter extends BaseAdapter {
  Context context;
  List<CityItem> list;
  public GridViewAdapter(Context _context, List<CityItem> _list) {
   this.list = _list;
   this.context = _context;
  }
  @Override
  public int getCount() {
   return list.size();
  }
  @Override
  public Object getItem(int position) {
   return list.get(position);
  }
  @Override
  public long getItemId(int position) {
   return position;
  }
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   LayoutInflater layoutInflater = LayoutInflater.from(context);
   convertView = layoutInflater.inflate(R.layout.list_item, null);
   TextView tvCity = (TextView) convertView.findViewById(R.id.tvCity);
   TextView tvCode = (TextView) convertView.findViewById(R.id.tvCode);
   CityItem city = list.get(position);
   tvCity.setText(city.getCityName());
   tvCode.setText(city.getCityCode());
   return convertView;
  }
 }
 public class CityItem {
  private String cityName;
  private String cityCode;
  public String getCityName() {
   return cityName;
  }
  public void setCityName(String cityName) {
   this.cityName = cityName;
  }
  public String getCityCode() {
   return cityCode;
  }
  public void setCityCode(String cityCode) {
   this.cityCode = cityCode;
  }
 }
}

看完了這篇文章,相信你對“Android開發如何實現橫向列表GridView橫向滾動”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝阳县| 保山市| 大方县| 苗栗市| 滨海县| 东丽区| 沙雅县| 尼玛县| 益阳市| 白山市| 九龙城区| 大竹县| 周宁县| 库尔勒市| 黎川县| 积石山| 尖扎县| 横峰县| 贵定县| 博野县| 泰兴市| 博罗县| 白朗县| 昭觉县| 儋州市| 宜君县| 荣昌县| 陕西省| 新兴县| 云阳县| 澄迈县| 泸州市| 于都县| 象山县| 吴忠市| 崇左市| 扎赉特旗| 荔波县| 武夷山市| 玉屏| 辉县市|