使用ListView滚动Linearlayout

时间:2014-12-15 04:52:35

标签: android android-layout listview android-listview

我即将完成Android应用程序的开发,但我在渲染配置文件Fragment Layout时遇到了困难。 基本上我到目前为止所做的是我将用户的信息放在LinearLayout的顶部,在底部我有一个列表View,其中包含他/她到目前为止发布的所有消息。通过这样做,我无法在滚动ListView时滚动LinearLayout。

当有人滚动ListView(像Facebook个人资料页面)时,我想要做的是用所有用户信息滚动LinearLayout。

这是现有的XML:**

<LinearLayout>
    <LinearLayout>
        <!-- User information. -->
    </LinearLayout>

    <ListView/>

</LinearLayout>

3 个答案:

答案 0 :(得分:1)

使用自定义列表视图

public class CustomExpandableListView extends ListView {

ListView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

ListView(Context context) {
    super(context);
}

public ListView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    // Calculate entire height by providing a very large height hint.
    // View.MEASURED_SIZE_MASK represents the largest height possible.
    int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK,
            MeasureSpec.AT_MOST);
    super.onMeasure(widthMeasureSpec, expandSpec);

    ViewGroup.LayoutParams params = getLayoutParams();
    params.height = getMeasuredHeight();
}
}

替换你的

 <ListView/> 

<com.wsc.common_methods.ListView/>

并将整体布局放在scrollview

答案 1 :(得分:0)

定义两个布局以显示用户信息和消息,例如一个布局包含ListView,另一个布局包含用户信息视图,在活动中加载ListView布局并将用户信息布局添加到ListView标题。

<强> user_main.xml

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


    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>


</LinearLayout>

<强> user_header.xml

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

    <TextView
        android:id="@+id/txtUserName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

用户活动

private ListView listView;
private TextView txtUserName;
private View header;

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

    listView = (ListView) findViewById(R.id.listView);
    header = LayoutInflater.from(this).inflate(R.layout.user_header,null);
    txtUserName= (TextView) header.findViewById(R.id.txtUserName);

    listView.addHeaderView(header);
}

答案 2 :(得分:0)

为此,您必须将您的孔视图放在ScrollView内。您的Xml父布局应该是Scroll View。要在滚动视图中正确滚动列表视图,您必须使用ExpandableHeight Listview。

请参阅link1 - enter link description here

link2 - enter link description here

希望它能解决你的问题。