0

我在构建一个带有一半屏幕的videoView、一个带有两个孩子的expandableList和视频帧下方的一些textView的XML布局时遇到了问题。文本在列表下方,所以如果我展开列表并且列表填满了半屏的其余部分,它应该能够滚动到 textView。

我的想法是将expandableList 放在scrollView 中,但我无法展开列表。

我建立了我的布局如下:

  • 线性布局
    • 视频视图
    • 滚动视图
      • 线性布局
        • ExpandableListView
        • 文本视图>
        • ...

是否有其他方法可以实现我的意图或为什么我不能扩展我的列表。

编辑:XML 布局:

<?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="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<VideoView
    android:id="@+id/video_player_h"
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="1" />

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="1" >

    <ExpandableListView
        android:id="@+id/expandableList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:groupIndicator="@drawable/group_indicator" >

        <TextView
            android:id="@+id/android:empty"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Empty" >
        </TextView>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/view_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:gravity="center"
                android:paddingLeft="10dp"
                android:text="Views: "
                android:textSize="16sp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/view_text"
                android:gravity="center"
                android:hint="12345"
                android:paddingLeft="10dp"
                android:textSize="16sp" />

            <RatingBar
                style="@style/newRatingBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:isIndicator="false"
                android:numStars="5"
                android:rating="3" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/date_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:paddingLeft="10dp"
                android:text="Date: "
                android:textSize="16sp" />

            <TextView
                android:id="@+id/date_video"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/date_text"
                android:hint="11.11.1111"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/uploader"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:hint="Mr. X"
                android:paddingRight="10dp"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/user_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@id/uploader"
                android:text="User: "
                android:textSize="16sp" />
        </RelativeLayout>
    </ExpandableListView>
</ScrollView>

</LinearLayout>

班级:

public class Player extends Activity {
ExpandableListView titleList;
VideoView videoView;
ExpandableListAdapter exp;

private static final String OUTPUT_FILE="/storage/sdcard0/bigbuckbunny.3gp";

public int GetDipsFromPixel(float pixels)
{
 float scale = getResources().getDisplayMetrics().density;
 return (int) (pixels * scale + 0.5f);
}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.play_activity);

    videoView = (VideoView) findViewById(R.id.video_player_h);
    MediaController mc = new MediaController(this);
    videoView.setMediaController(mc);
    videoView.setVideoPath(OUTPUT_FILE);

    if (getResources().getConfiguration().orientation == 1) {
        titleList = (ExpandableListView) findViewById(R.id.expandableList);

        ArrayList<String> groupList = new ArrayList<String>();
        groupList.add("Titel");
        ArrayList<ArrayList<String>> childrenList = new ArrayList<ArrayList<String>>();
        ArrayList<String> childrenElement = new ArrayList<String>();
        childrenElement.add("Beschreibung");
        childrenList.add(childrenElement);
        ExpandableListAdapter listAdapter = new ExpandableAdapter(this, groupList, childrenList);

        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int width = metrics.widthPixels;

        titleList.setIndicatorBounds(width - GetDipsFromPixel(50), width - GetDipsFromPixel(10));
        titleList.setAdapter(listAdapter);
        titleList.setDividerHeight(1);
        titleList.setClickable(false);

    }

}

class ExpandableAdapter implements ExpandableListAdapter {

    Context context;
    ArrayList<String> groups;
    ArrayList<ArrayList<String>> children;

    public ExpandableAdapter(Context context, ArrayList<String> groups, ArrayList<ArrayList<String>> children) {
        this.context = context;
        this.groups = groups;
        this.children = children;
    }


    public Object getChild(int groupPosition, int childPosition) {
        return children.get(groupPosition).get(childPosition);
    }

    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        if(convertView==null){
            LayoutInflater inflator = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView  = inflator.inflate(R.layout.title_child, null);
        }
        TextView text = (TextView) convertView.findViewById(R.id.child_field);
        text.setText(children.get(groupPosition).get(childPosition));
        return convertView;
    }

    public int getChildrenCount(int groupPosition) {
        return children.get(groupPosition).size();
    }

    public Object getGroup(int groupPosition) {
        return groups.get(groupPosition);
    }

    public int getGroupCount() {
         return groups.size();
    }

    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        if(convertView==null){  
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.title_group, null);
        }
        TextView text = (TextView) convertView.findViewById(R.id.group_field);
        text.setText(groups.get(groupPosition));
        return convertView;
    }

    public boolean hasStableIds() {
        return true;
    }

    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }

    public boolean areAllItemsEnabled() {
        return false;
    }

    public long getCombinedChildId(long groupId, long childId) {
        return 0;
    }

    public long getCombinedGroupId(long groupId) {
        return 0;
    }

    public boolean isEmpty() {
        return false;
    }

    public void onGroupCollapsed(int groupPosition) {
    }

    public void onGroupExpanded(int groupPosition) {
    }

    public void registerDataSetObserver(DataSetObserver observer) {
    }

    public void unregisterDataSetObserver(DataSetObserver observer) {
    }

}
}
4

1 回答 1

0

当然,我的建议是

  • 滚动视图

    • 可扩展列表
      • 文本视图 1
      • 文本视图 2
      • 很快...

    <ExpandableListView
        android:id="@+id/android:list"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:groupIndicator="@drawable/group_indicator">
    
        <TextView 
            android:id="@+id/android:empty" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="Empty">      
        </TextView>
    
    
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
    
        <TextView
            android:id="@+id/view_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:gravity="center"
            android:paddingLeft="10dp"
            android:text="Views: "
            android:textSize="16sp" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/view_text"
            android:gravity="center"
            android:paddingLeft="10dp"
            android:hint="12345"
            android:textSize="16sp" />
    
    </RelativeLayout>
    
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
    
        <TextView
            android:id="@+id/date_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:paddingLeft="10dp"
            android:text="Date: "
            android:textSize="16sp" />
    
        <TextView
            android:id="@+id/date_video"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/date_text"
            android:hint="11.11.1111"
            android:textSize="16sp" />
     </RelativeLayout>
    </ExpandableListView>
    </ScrollView>
    
于 2012-12-11T10:50:38.017 回答