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

溫馨提示×

溫馨提示×

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

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

Android使用Scroll+Fragment仿京東分類效果

發布時間:2020-08-26 07:00:06 來源:腳本之家 閱讀:322 作者:火炎焱燚- 欄目:移動開發

 本文實例為大家分享了Android九宮格圖片展示的具體代碼,供大家參考,具體內容如下

Android使用Scroll+Fragment仿京東分類效果

實現思路:首先說下布局,整個是一個橫向的線性布局,左邊是一個ScrollView,右邊是一個FrameLayout,在代碼中動態向ScrollView中添加TextView,然后根據TextView的點擊事件使用Fragment替換FrameLayout

首先看下布局:

<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="horizontal" 
  tools:context="www.jdsort.com.jdsort.MainActivity"> 
 
  <ScrollView 
    android:id="@+id/scrollview" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:scrollbars="none"> 
    <LinearLayout 
      android:id="@+id/linearlayout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" /> 
  </ScrollView> 
 
  <FrameLayout 
    android:id="@+id/framelayout" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="3"/> 
</LinearLayout> 

MainActivity代碼:

public class MainActivity extends FragmentActivity implements View.OnClickListener { 
 
  private String[] titles={"常用分類","潮流女裝","品牌男裝","內衣配飾","家用電器","手機數碼","電腦辦公","個護化妝","母嬰頻道","食物生鮮","酒水飲料","家居家紡","整車車品","鞋靴箱包","運動戶外","圖書","玩具樂器","鐘表","居家生活","珠寶飾品","音像制品","家具建材","計生情趣","營養保健","奢侈禮品","生活服務","旅游出行"}; 
  private ScrollView mScrollView; 
  private FrameLayout mFrameLayout; 
  //裝裝ScrollView的item的TextView的數組 
  private TextView[] textViewArray; 
  //裝ScrollView的item的數組 
  private View[] views; 
  Context context; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    context=this; 
 
    textViewArray=new TextView[titles.length]; 
    views=new View[titles.length]; 
 
    initView(); 
 
    getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,new FragmentOne()).commit(); 
  } 
 
  private void initView() { 
    mScrollView= (ScrollView) findViewById(R.id.scrollview); 
    addView(); 
    changeTextColor(0); 
 
    mFrameLayout= (FrameLayout) findViewById(R.id.framelayout); 
 
  } 
 
  /** 
   * 給ScrollView添加子View 
   */ 
  private void addView() { 
    LinearLayout mLinearLayout= (LinearLayout) findViewById(R.id.linearlayout); 
 
    View view; 
    for(int x=0;x<titles.length;x++){ 
      view = View.inflate(this, R.layout.item_scrollview, null); 
      view.setId(x); 
      view.setOnClickListener(this); 
      TextView tv= (TextView) view.findViewById(R.id.textview); 
      tv.setText(titles[x]); 
      mLinearLayout.addView(view); 
 
      textViewArray[x]=tv; 
      views[x]=view; 
 
    } 
  } 
 
  @Override 
  public void onClick(View v) { 
    ToastUtils.showToast(this,titles[(int) v.getId()]); 
    changeTextColor((int) v.getId()); 
    changeTextLocation((int) v.getId()); 
 
    Fragment fragment=null; 
 
    switch (v.getId()){ 
      case 0: 
        fragment=new FragmentOne(); 
        break; 
      case 1: 
        fragment=new Fragment1(); 
        break; 
      case 2: 
        fragment=new Fragment2(); 
        break; 
      case 3: 
        fragment=new Fragment3(); 
        break; 
      case 4: 
        fragment=new Fragment4(); 
        break; 
      case 5: 
        fragment=new Fragment5(); 
        break; 
      case 6: 
        fragment=new Fragment6(); 
        break; 
      case 7: 
        fragment=new Fragment7(); 
        break; 
    } 
    if(fragment!=null){ 
      getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragment).commit(); 
    } 
  } 
  /** 
   * 改變textView的顏色 
   * @param id 
   */ 
  private void changeTextColor(int id) { 
    for (int i = 0; i < textViewArray.length; i++) { 
      if(i!=id){ 
        textViewArray[i].setBackgroundResource(android.R.color.transparent); 
        textViewArray[i].setTextColor(0xff000000); 
      }else { 
        textViewArray[id].setBackgroundResource(android.R.color.white); 
        textViewArray[id].setTextColor(0xffff5d5e); 
      } 
    } 
 
  } 
 
  /** 
   * 改變欄目位置 
   */ 
  private void changeTextLocation(int index) { 
 
    //views[clickPosition].getTop()針對其父視圖的頂部相對位置 
    int x = (views[index].getTop() - mScrollView.getHeight() / 2); 
    mScrollView.smoothScrollTo(0, x); 
  } 
 
} 

源碼等上傳上去會再次發布鏈接,如果那里寫的不好,歡迎私信,評論指導

源碼下載:Scroll+Fragment仿京東分類效果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

磴口县| 邵东县| 延安市| 西充县| 福建省| 岳阳市| 积石山| 江永县| 长海县| 洛隆县| 乐清市| 蒲江县| 大城县| 永定县| 博白县| 苗栗县| 安丘市| 阳城县| 盐亭县| 潞西市| 昭苏县| 肥乡县| 黔西| 芮城县| 上虞市| 肥西县| 峡江县| 临泉县| 永和县| 蒙自县| 屏东县| 昌都县| 岳西县| 巩留县| 巫山县| 呼伦贝尔市| 晋江市| 桓仁| 上饶市| 湖州市| 濮阳县|