我是新的android开发。下面我附上我的布局文件。
在我的布局中,我有一个ListView
和一个EditText
ImageButton
。当我在EditText
中插入任务并按ImageButton
时,该任务将逐一添加到ListView
中。
我的问题是假设我添加了4个以上的任务意味着EditText
ImageButton
视图不可见,因为列表项占据了那个位置。我添加了他们上面的屏幕截图请给出解决方案谢谢...
`**Layout:**
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="wrap_content"
android:orientation="horizontal"
android:weightSum="3" >
<Button
android:id="@+id/todaytaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:background="@drawable/buttonselector"
android:text="TODAY" />
<Button
android:id="@+id/tomorrowtaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/buttonselector"
android:text="TOMORROW" />
<Button
android:id="@+id/futuretaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/buttonselector"
android:text="FUTURE" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ListView
android:id="@+id/frontpagetasklistid"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" >
<RelativeLayout
android:id="@+id/relativelayoutid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" >
<EditText
android:id="@+id/edittextidAddTodayTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@drawable/edittextselector"
android:hint="Add Today Task" />
<ImageButton
android:id="@+id/imagebuttonidAddTodayTask"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:src="@drawable/addtask" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:2)
您可以拥有一个Relative layout
或者您可以尝试以下内容。您可以使用单个相对布局并将小部件相对于彼此放置。
另一个选项是将linearlayout按钮小部件添加为标题。还要将editext和image按钮作为页脚添加到列表视图中。
<Button
android:id="@+id/todaytaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:text="TODAY" />
<Button
android:id="@+id/tomorrowtaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:text="TOMORROW" />
<Button
android:id="@+id/futuretaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ic_launcher"
android:text="FUTURE" />
</LinearLayout>
<ListView
android:id="@+id/frontpagetasklistid"
android:layout_above="@+id/edittextidAddTodayTask"
android:layout_below="@+id/ll"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
<EditText
android:id="@+id/edittextidAddTodayTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@drawable/ic_launcher"
android:hint="Add Today Task"/>
<ImageButton
android:id="@+id/imagebuttonidAddTodayTask"
android:layout_width="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
编辑:使用单一相对布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:id="@+id/rl"
tools:context=".MainActivity" >
<ListView
android:id="@+id/frontpagetasklistid"
android:layout_above="@+id/edittextidAddTodayTask"
android:layout_below="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
<ImageButton
android:id="@+id/imagebuttonidAddTodayTask"
android:layout_width="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:src="@drawable/ic_launcher" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button1"
android:layout_centerHorizontal="true"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_alignRight="@+id/frontpagetasklistid"
android:layout_marginRight="11dp"
android:text="Button" />
<EditText
android:id="@+id/edittextidAddTodayTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/imagebuttonidAddTodayTask"
android:ems="10"
android:hint="Add Today Task" />
</RelativeLayout>
Grpahical编辑器屏幕截图
三星galaxy s3屏幕截图
![在此输入图片说明] [2]
因为您通过添加更多项目来询问forscreen射击
![在此输入图片说明] [3]
![enter code here][1]
来自讨论
拥有row.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="38dp"
android:text="TextView" />
</RelativeLayout>
MainActivity.java
您可以将第一个xml用作activity_main.xml
public class MainActivity extends Activity {
EditText ed;
ImageButton ib;
ListView lv;
ArrayList<String> aa;
ArrayAdapter<String> arrayAdapter;
CustomAdapter cus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed= (EditText) findViewById(R.id.edittextidAddTodayTask);
ib= (ImageButton) findViewById(R.id.imagebuttonidAddTodayTask);
aa = new ArrayList<String>();
lv= (ListView) findViewById(R.id.frontpagetasklistid);
for(int i=0;i<100;i++)
{
aa.add(""+i);
}
cus = new CustomAdapter();
//arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, aa);
lv.setAdapter(cus);
ib.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("...............", "...............");
aa.add(ed.getText().toString());
cus.notifyDataSetChanged();
}
});
}
class CustomAdapter extends BaseAdapter
{
LayoutInflater mInflater;
TextView tv;
public CustomAdapter()
{
this.mInflater = LayoutInflater.from(MainActivity.this);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return aa.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
public View getView( int arg0, View arg1, ViewGroup arg2) {
if(arg1==null )
{
arg1=mInflater.inflate(R.layout.row, arg2,false);
}
tv= (TextView) arg1.findViewById(R.id.textView1);
tv.setText(aa.get(arg0));
return arg1;
}
}
}
答案 1 :(得分:1)
我对您的布局进行了一些更改:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:weightSum="30"
android:orientation="horizontal"
>
<Button
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="10"
/>
<Button
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="10"
/>
<Button
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="10"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="8"
>
<ListView
android:id="@+id/frontpagetasklistid"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:weightSum="10"
android:orientation="horizontal"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:orientation="horizontal"
>
<EditText
android:id="@+id/edittextidAddTodayTask"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Add Today Task"
android:layout_weight="10"
android:drawableRight="@drawable/ic_launcher"
android:background="@android:color/black"
/>
/// I remove the button . there is no need of it.
</LinearLayout>
</LinearLayout>
现在调用drawableRight单击侦听器来处理操作
yourEditText.setOnTouchListener(new RightDrawableOnTouchListener(keyword) {
@Override
public boolean onDrawableTouch(final MotionEvent event) {
// do whatever you want
}
});
答案 2 :(得分:1)
您可以使用listView.addFooterView(view);此处视图引用包含编辑文本和添加按钮的视图。
答案 3 :(得分:1)
您可以在列表视图中添加页脚视图并使其不可见。在页脚视图中,复制底栏的布局,其中包括EditText和ImageButton。只需创建一个新的布局文件并将此xml粘贴到文件中即可。
<RelativeLayout
android:id="@+id/relativelayoutid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="invisible" >
<EditText
android:id="@+id/edittextidAddTodayTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edittextselector"
android:hint="Add Today Task" />
<ImageButton
android:id="@+id/imagebuttonidAddTodayTask"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:src="@drawable/addtask" />
</RelativeLayout>
在Listview中将此布局添加为页脚视图。这样你的Listview永远不会隐藏原始的底栏。别忘了让它看不见。
答案 4 :(得分:1)
嗨,请尝试使用重量列表视图
编辑xml的示例是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3" >
<Button
android:id="@+id/todaytaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:background="@drawable/buttonselector"
android:text="TODAY" />
<Button
android:id="@+id/tomorrowtaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/buttonselector"
android:text="TOMORROW" />
<Button
android:id="@+id/futuretaskbtnid"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/buttonselector"
android:text="FUTURE" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/frontpagetasklistid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
</ListView>
<RelativeLayout
android:id="@+id/relativelayoutid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" >
<EditText
android:id="@+id/edittextidAddTodayTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@drawable/edittextselector"
android:hint="Add Today Task" />
<ImageButton
android:id="@+id/imagebuttonidAddTodayTask"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:src="@drawable/addtask" />
</RelativeLayout>
</LinearLayout>