问题: EditText无论我将做什么总是像缠绕文本一样(他适合文本长度并在打字时扩展)。我的目的是修改EditText的大小。
目标android:19 最小的android:10
我尝试将EditText放在MainActivity上:
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
public class MainActivity extends ActionBarActivity
{
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
showActionBar(this);
}
@SuppressLint("NewApi")
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@SuppressLint("NewApi")
private void showActionBar(Context context)
{
LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View searchView = inflator.inflate(R.layout.search_bar, null);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(searchView);
}
}
在showActionBar方法中添加的seach_bar.xml是layout \ search_bar.xml:
<LinearLayout 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:orientation="horizontal" >
<ImageView
android:id="@+id/appIcon"
android:layout_width="45dp"
android:layout_height="match_parent"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_launcher" />
<EditText
android:id="@+id/searchEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text" />
</LinearLayout>
值\ styles.xml:
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>
<style name="AppTheme" parent="AppBaseTheme"></style>
</resources>
看起来像这样:
答案 0 :(得分:2)
<EditText
android:id="@+id/txtViewSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true" >
</EditText>
答案 1 :(得分:1)
将线性布局的方向添加到垂直和 将此代码复制并粘贴到xml中:
<EditText
android:id="@+id/searchEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text"
android:singleLine="true" />
答案 2 :(得分:1)
两种可能的解决方案:
使用layout_weight
:
<ImageView
android:id="@+id/appIcon"
android:layout_width="45dp"
android:layout_height="match_parent"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_launcher" />
<EditText
android:id="@+id/searchEditText"
android:layout_width="0dp" <!-- recommended but not required -->
android:layout_height="wrap_content"
android:maxLines="1"
android:layout_weight="1" <!-- add this line -->
android:inputType="text" />
使用固定的width
:
<EditText
android:id="@+id/searchEditText"
android:layout_width="fill_parent" <!-- recommended but not required -->
android:layout_height="wrap_content"
android:maxLines="1"
android:maxWidth="120dp" <!-- value based on your desire -->
android:inputType="text" />
答案 3 :(得分:1)
经过多次尝试,我发现强制EditText填充整个ActionBar的唯一方法是将其大小设置为某个非常大的数字(例如10000):
android:layout_width="10000dp"
因为我没有听说过这么大的设备,所以应该按预期工作。
答案 4 :(得分:0)
将minHeight添加到editText,如下所示 -
android:minHeight="175px" // Your fixed size
这将修复editText的大小。
答案 5 :(得分:0)
添加
android:orientation = "vertical"
in
<LinearLayout 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" >
因此帐号中的EditText需要"match_parent"
。
答案 6 :(得分:0)
如今我仍然不知道它是如何运作的。
无论如何,如果我在Activity中使用Amulya Khare建议,那么它是正确的,但它在ActionBarActivity中根本不起作用。