![在此输入图像描述] [1]我在对话框中有一个ListView和一个ScrollView。我希望ListView和ScrollView填满对话框的一半。如果将ScrollView中的EditText设置为160dp,我似乎只能设置宽度。无论如何都要这样做,没有特定的dp?
以下代码会发生以下情况:
https://drive.google.com/file/d/0Bxf-D6ENUTuAU21wclVpWkJUdTg/edit?usp=sharing
这是ScrollView:search.xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/search_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
/>
<TextView
android:id="@+id/primary_role"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="10dp"
android:text="Primary Role"
android:textSize="18sp"
/>
<CheckBox
android:id="@+id/primary_assassin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Assassin"
/>
<CheckBox
android:id="@+id/primary_fighter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Fighter"
/>
<CheckBox
android:id="@+id/primary_jungle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Jungler"
/>
<CheckBox
android:id="@+id/primary_mage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Mage"
/>
<CheckBox
android:id="@+id/primary_marksman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Marksman"
/>
<CheckBox
android:id="@+id/primary_support"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Support"
/>
<CheckBox
android:id="@+id/primary_tank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Tank"
/>
<TextView
android:id="@+id/secondary_role"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="10dp"
android:text="Secondary Role"
android:textSize="18sp"
/>
<CheckBox
android:id="@+id/secondary_assassin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Assassin"
/>
<CheckBox
android:id="@+id/secondary_fighter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Fighter"
/>
<CheckBox
android:id="@+id/secondary_jungle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Jungler"
/>
<CheckBox
android:id="@+id/secondary_mage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Mage"
/>
<CheckBox
android:id="@+id/secondary_marksman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Marksman"
/>
<CheckBox
android:id="@+id/secondary_support"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Support"
/>
<CheckBox
android:id="@+id/secondary_tank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="25dp"
android:text="Tank"
/>
</LinearLayout>
</ScrollView>
这是我制作的自定义列表项:list_item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/ic_launcher"
/>
<TextView
android:id="@+id/tv"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_toRightOf="@id/iv"
android:layout_centerVertical="true"
android:singleLine="true"
android:textSize="18sp"
/>
</RelativeLayout>
这是对话框用来显示的xml:listview.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center">
<include
layout="@layout/search"
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
/>
<ListView
android:id="@+id/list"
android:layout_toRightOf="@id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
这是我的mainActivity.java文件
String[] example = {"example1", "example2", "example3"};
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.listView);
dialog.getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
final ListView list_view = (ListView)dialog.findViewById(R.id.list);
final ArrayAdapter<String> list_array_adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.list_item, R.id.iv, example);
list_view.setAdapter(list_array_adapter);
list_view.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id)
{
// ListView Clicked item index
int itemPosition = position;
// ListView Clicked item value
String itemValue = (String) list_view.getItemAtPosition(position);
// Show Alert
Toast.makeText(getApplicationContext(),"Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG).show();
}
});
当我使用以下代码时会发生这种情况:
https://drive.google.com/file/d/0Bxf-D6ENUTuASE1KSmFZZDNkams/edit?usp=sharing
这就是我想要的,而不必在EditText下使用android:layout_width = "160dp"
。
在两张图片之间唯一的区别是在EditText下,第二张图片的宽度是160dp。
答案 0 :(得分:0)
我不确定你要做什么,但我认为你可能希望在RelativeLayout中包含这两个视图,你可以声明它们应该在旁边呈现通过声明一个是android:layout_toRightOf
另一个。也就是说,将行android:layout_toRightOf="@+id/ScrollView"
添加到ListView的XML。
答案 1 :(得分:0)
我发现了我需要做的事情。我可以使它工作的唯一方法是创建一个没有文本的TextView水平居中,并具有ListView toTheRight和search.xml toTheLeft,现在它可以工作。