私は、RelativeLayout に 2 つの TextView と 1 つの ExpandableListView が必要な点に到達しました。長い話し合いの末、レイアウト自体がどのように動作するかを確認するために写真を表示することにしました。
スナップショットがあります。1 つ目は、ExpandableListView が展開されていない場合です。
しかし、この ExpandableListView を展開しようとすると、次のように表示されます。
展開されたリストの一部しか見えず、その色は次の TextView の色と同じです。なぜそうなのですか?私の目標は、展開された ExpandableListView 全体を表示することです。
xml のコード:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="#000000" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00ff00" >
<TextView
android:id="@+id/user"
android:layout_width="match_parent"
android:layout_height="100dp"
android:paddingLeft="3dp"
android:text="Top User"
android:textColor="#111111"
android:background="#eeeeee"
android:textSize="22dp" />
<ExpandableListView
android:id="@+id/elvMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
</ExpandableListView>
<TextView
android:id="@+id/about"
android:layout_width="match_parent"
android:layout_height="100dp"
android:text="Bottom About"
android:textColor="#6f6f6f"
android:textSize="24dp"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>
アクティビティのコード:
public class IngredientsActivity extends Activity {
private ArrayList<Ingredient> ingredients;
private Bitmap bitmap;
private final String TAG = "IngredientsActivity";
public void onCreate (Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.ingredients_layout);
//ingredients = (ArrayList)getIntent().getSerializableExtra("ingredients");
//bitmap = (Bitmap)getIntent().getParcelableExtra("bitmap");
prepareIngredients(); //preparing ExpandableListView children
TextView user = (TextView)findViewById(R.id.user);
TextView about = (TextView)findViewById(R.id.about);
user.setText("Albert Einstein");
about.setText("Albert Einstein (play /ˈælbərt ˈaɪnstaɪn/; German: [ˈalbɐt ˈaɪnʃtaɪn] ( listen); 14 March 1879 – 18 April 1955) was a German theoretical physicist who developed the theory of general relativity, effecting a revolution in physics. For thisfor his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect.[5] The latter was pivotal in establishing quantum theory within physics.");
}
private void prepareIngredients() {
SimpleExpandableListAdapter adapter;
final ExpandableListView list = (ExpandableListView)findViewById(R.id.elvMain);
ArrayList<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
Map m = new HashMap<String, String>();
m.put("groupName", "Datas");
groupData.add(m);
String groupFrom[] = new String[] {"groupName"};
int groupTo[] = new int[] {R.id.groupname};
ArrayList<ArrayList<Map<String, String>>> childData = new ArrayList<ArrayList<Map<String, String>>>();
ArrayList<Map<String, String>> childDataItem = new ArrayList<Map<String, String>>();
for (Ingredient i : ingredients) {
Log.d(TAG, "Ingridient: " + i);
Map<String, String> m1 = new HashMap<String, String>();
StringBuilder ingredientsString = new StringBuilder();
String v = i.getValue();
if (!v.equals("null")) {
ingredientsString.append("- " + i.getName() + " " + v + i.getType());
} else {
ingredientsString.append("- " + i.getName() + " " + i.getType());
}
m1.put("levelTwoCat", ingredientsString.toString());
childDataItem.add(m1);
}
childData.add(childDataItem);
String childFrom[] = new String[] {"levelTwoCat"};
int childTo[] = new int[] {R.id.ingredients_second_layer_text};
adapter = new SimpleExpandableListAdapter (
this,
groupData,
R.layout.ingredients_first_layer,
groupFrom,
groupTo,
childData,
R.layout.ingredients_second_layer,
childFrom,
childTo);
list.setAdapter(adapter);
}
質問は同じです。このレイアウトで ExpandableListView を強制的に展開するにはどうすればよいですか? 現在、必要に応じて拡張されていません。(上部のスナップショットを参照してください)。