91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么在Android中實現一個ListView點擊展開收起效果

發布時間:2021-04-07 15:54:22 來源:億速云 閱讀:175 作者:Leah 欄目:移動開發

怎么在Android中實現一個ListView點擊展開收起效果?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<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" >
  <!--提示框-->
  <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="請選擇您的類型:"
    android:textSize="30sp"
    android:textColor="#ffffffff"
    android:paddingLeft="5dp"
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:background="#ff000000"/>
  <!--定義一個ExpandableListView組件-->
  <ExpandableListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  </ExpandableListView>
</LinearLayout>

然后就是具體實現:

這里主要是添加幾個必須的屬性 大多數方法不用重寫

參考我代碼中的位置稍加改動就行

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //創建一個ExpandableListAdapter對象
    final ExpandableListAdapter adapter = new ExpandableListAdapter() {
      int[] logos = new int[]{
          R.drawable.human1st,
          R.drawable.human1st,
          R.drawable.human2nd,
          R.drawable.human3rd
      };
      private String[] humanTypes = new String[]{
          "不是人","聰明人","普通人","我這樣的人"
      };
      private String[][] humans = new String[][]{
          {"上仙","大神","荷蘭豬"},
          {"超人","一般聰明人","假的聰明人"},
          {"努力的人","快樂的普通人","苦逼的普通人"},
          {"天才","傻逼","蠢萌"}
      };
      //獲得制定組的位置、指定子列表項處的字列表項數據
      private TextView getTextView(){
        AbsListView.LayoutParams layoutParams =
            new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,164);
        TextView textView = new TextView(MainActivity.this);
        textView.setLayoutParams(layoutParams);
        textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
        textView.setPadding(36,0,0,0);
        textView.setTextSize(30);
        return textView;
      }
      @Override
      public void registerDataSetObserver(DataSetObserver observer) {
      }
      @Override
      public void unregisterDataSetObserver(DataSetObserver observer) {
      }
      @Override
      public int getGroupCount() {
        return humanTypes.length;
      }
      @Override
      public int getChildrenCount(int groupPosition) {
        return humans[groupPosition].length;
      }
      //獲取制定組位置處的組數據
      @Override
      public Object getGroup(int groupPosition) {
        return humanTypes[groupPosition];
      }
      @Override
      public Object getChild(int groupPosition, int childPosition) {
        return humans[groupPosition][childPosition];
      }
      @Override
      public long getGroupId(int groupPosition) {
        return groupPosition;
      }
      @Override
      public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
      }
      @Override
      public boolean hasStableIds() {
        return true;
      }
      //該方法決定每個組選項的外觀
      @Override
      public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        LinearLayout linearLayout = new LinearLayout(MainActivity.this);
        linearLayout.setOrientation(LinearLayout.HORIZONTAL);
        ImageView logo = new ImageView(MainActivity.this);
        logo.setImageResource(logos[groupPosition]);
        linearLayout.addView(logo);
        TextView textView = getTextView();
        textView.setText(getGroup(groupPosition).toString());
        linearLayout.addView(textView);
//        linearLayout.setMinimumHeight(50);
        return linearLayout;
      }
      @Override
      public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        TextView textView = getTextView();
        textView.setText(getChild(groupPosition,childPosition).toString());
        return textView;
      }
      @Override
      public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
      }
      @Override
      public boolean areAllItemsEnabled() {
        return false;
      }
      @Override
      public boolean isEmpty() {
        return false;
      }
      @Override
      public void onGroupExpanded(int groupPosition) {
      }
      @Override
      public void onGroupCollapsed(int groupPosition) {
      }
      @Override
      public long getCombinedChildId(long groupId, long childId) {
        return 0;
      }
      @Override
      public long getCombinedGroupId(long groupId) {
        return 0;
      }
    };
    ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.list);
    expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
      @Override
      public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        Toast.makeText(MainActivity.this,"你是一個:" +
            adapter.getChild(groupPosition,childPosition),Toast.LENGTH_SHORT).show();
        return true;
      }
    });
    expandableListView.setAdapter(adapter);
  }
}

看完上述內容,你們掌握怎么在Android中實現一個ListView點擊展開收起效果的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

麻江县| 北安市| 无棣县| 日土县| 夏河县| 阿尔山市| 南丰县| 乳山市| 道真| 社旗县| 天津市| 三亚市| 万年县| 巴南区| 山阴县| 柘荣县| 县级市| 承德县| 长沙县| 马公市| 东光县| 龙南县| 巴东县| 安宁市| 宾川县| 五台县| 肥乡县| 喀喇| 中超| 遵义县| 炎陵县| 丹东市| 洪洞县| 叙永县| 金寨县| 武川县| 昌宁县| 重庆市| 江山市| 千阳县| 南通市|