2017-03-20 22 views
1

私はOn/stateでリストビュー全体を拡大し、Off/stateで通常の前のビューに戻すトグルボタンを表示したいと思います。私はトグルボタンを作成することができましたが、押されたときにはそれがリストビューの代わりに拡大されます。トグルボタンを関連付けて、リストビュー全体をオン/オフにするにはどうすればいいですか?前もって感謝します。トグルボタンでリストビュー全体のサイズを変更するにはどうすればよいですか?

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<ListView 
    android:id="@+id/tvList" 
    android:layout_width="match_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1"/> 

<ToggleButton 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/toggle_button" 
    android:textOn="Resize On" 
    android:textOff="Resize Off" 
    android:layout_weight="0.03" 
    android:onClick="changeSizeState"/> 

import java.util.ArrayList; 
import java.util.List; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.LinearLayout; 
import android.widget.ListView; 
import android.widget.ToggleButton; 
import android.view.ViewGroup.LayoutParams; 
import static john.android.study.R.id.tvList; 



public class MainActivity extends Activity { 

    private ListView lvPhone; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     lvPhone = (ListView)findViewById(R.id.tvList); 

     String[] values = new String[]{"Nikos", "Yiannis", "Kostas", "Thanasis", "Paulos",}; 

     ListView lvPhone = (ListView)findViewById(tvList); 

     List<PhoneBook> listPhoneBook = new ArrayList<PhoneBook>(); 

     for (String value : values) { 
      PhoneBook entry = new PhoneBook(value); 
      listPhoneBook.add(entry); 
     } 

     PhoneBookAdapter adapter = new PhoneBookAdapter(this,listPhoneBook); 
     lvPhone.setAdapter(adapter); 
    } 
    public void changeSizeState (View view){ 
     boolean checked = ((ToggleButton)view).isChecked(); 
     if(checked) { 
      LayoutParams params = view.getLayoutParams(); 
      params.height = 250; 
      view.setLayoutParams(params); 
     } 
    } 
} 
+0

あなたの答えにフラグメント – ArolaAb

答えて

1

あなたはlistview上でそれを試して、ボタンをtoogleするために、レイアウトのparamsを設定している:

public void changeSizeState (View view){ 
     boolean checked = ((ToggleButton)view).isChecked(); 
     if(checked) { 
      LayoutParams params = view.getLayoutParams(); 
      params.height = 250; 
      lvPhone.setLayoutParams(params); 
     } 
    } 

また、あなたがonCreateで新しいlistViewを開始している、以下のように変更します。

lvPhone = (ListView)findViewById(tvList); 

希望します。

+0

を使用してください。あなたはlistviewでそれを試してみることを意味しますか? –

+0

listViewの高さを拡大します。それで、レイアウトパラメタをlistviewに設定して、それが私の意図です。 – tahsinRupam

+0

@Anathematismeno_Morioそれは働いたのですか? – tahsinRupam

関連する問題