我的相对布局中有一个列表视图。 我想要一个列表视图,然后是一个editext,后面是2个按钮 像这样: ListView NEWLINE EditText NEWLINE Button1 Button2 NEWLINE
我有代码,如果列表很小,一切顺利。如果列表中有许多元素,那将占用所有空间,我将无法看到editText或按钮,
我已将其修剪到问题开始的部分:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/in"
android:layout_below="@id/button_contacts"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
android:layout_weight="1.0"
/>
<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/in" />
<Button
android:id="@+id/Convert"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="Convert" />
<Button
android:id="@+id/sendSMS"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_toLeftOf="@id/Convert"
android:layout_alignTop="@id/Convert"
android:text="Send" />
</RelativeLayout>
任何人都有任何想法如何解决这个问题? 感谢
编辑:卸妆加倍“
答案 0 :(得分:2)
以下代码适用于我,我希望它也适合你...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/MainLinearLayout">"
<TableLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
style="@style/MainTableLayoutStyle">
<ListView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@android:id/list"
android:layout_weight="1"
android:cacheColorHint="@color/transparent"
>
</ListView>
<TableRow>
<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/in" />
</TableRow>
<TableRow >
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:text="button1"
android:layout_gravity="left"
android:layout_weight="1"
/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:text="button2"
android:layout_gravity="right"
android:layout_weight="1"
/>
</TableRow>
</TableLayout>
</LinearLayout>
答案 1 :(得分:0)
您需要为列表视图指定一个固定的高度。
<ListView android:id="@+id/in"
android:layout_below="@id/button_contacts"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
android:layout_weight="1.0"
/>
另一种选择是在代码中以编程方式设置高度。如果你这样做,你需要在Activity的onWindowFocused()方法中做。然后,您可以通过编程方式将其设置为屏幕的一半。
Private LinearLayout llfullscreen;//llfullscreen is the viewgroup
//that stretches the whole screen
Private ListView lv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
llfullscreen = findViewById(R.id.bottomcontrol)
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if(hasFocus && llfullscreen!=null){
int layoutHeight = llfullscreen.getHeight();
ViewGroup.LayoutParams params = lv.getLayoutParams();
params.height = lv/2; //Set to half the screens size
this.lv.setLayoutParams(params);
this.lv.invalidate();
}
}
答案 2 :(得分:0)
因为在ListView中你使用android:layout_weight =&#34; 1.0&#34;所以,它占用了所有空间。你应该添加1个布局来包装你的Text,Buttom等并添加这个android:layout_weight =&#34; 2.0&#34;或3.0(由你决定)尝试。
P.S。如果它仍然无法工作For Try更改所有android:layout_height =&#34; fill_parent&#34;到android:layout_height =&#34; wrap_content&#34;
<ListView android:id="@+id/in"
android:layout_below="@id/button_contacts"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
android:layout_weight="1.0"
/>
<Relativelaout
android:id="@+id/bottomcontrol"
android:layout_below="@id/in"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2.0">
<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:drawable/editbox_background"
/>
<Button
android:id="@+id/Convert"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="Convert" />
<Button
android:id="@+id/sendSMS"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_toLeftOf="@id/Convert"
android:layout_alignTop="@id/Convert"
android:text="Send" />
</RelativeLayout>