我即将完成Android应用程序的开发,但我在渲染配置文件Fragment Layout时遇到了困难。 基本上我到目前为止所做的是我将用户的信息放在LinearLayout的顶部,在底部我有一个列表View,其中包含他/她到目前为止发布的所有消息。通过这样做,我无法在滚动ListView时滚动LinearLayout。
当有人滚动ListView(像Facebook个人资料页面)时,我想要做的是用所有用户信息滚动LinearLayout。
这是现有的XML:**
<LinearLayout>
<LinearLayout>
<!-- User information. -->
</LinearLayout>
<ListView/>
</LinearLayout>
答案 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
希望它能解决你的问题。