我正在尝试创建一个三个文本视图彼此相邻的布局.文本视图的长度不同.
我想做的就是安排它们,使它们总是具有相同的layout_width,而不管它们的文本长度如何.
我试过的方法:
1)我尝试使用linear_layout并将textviews的权重设置为1但不执行此操作,因为它仅适用于所有textViews定位后的剩余宽度.
2)我也尝试使用表格布局并使用stretchColumns ="*"拉伸所有列.但是,这也会将所需的宽度分配给文本的长度,然后才会拉伸列.
3)这是一个黑客,但这也不起作用.我试图在相对布局中有一个线性布局,三个文本视图没有文本,但通过设置它们的权重强制它们具有相等的宽度.这可以工作,但我希望我的下一个视图在相对布局中将自己与线性布局中视图的右边缘和左边缘对齐.但这不起作用.这是我用于此的布局.
<RelativeLayout
android:layout_width="fill_parent" android:layout_height="fill_parent" >
<!-- This is a hack to have all three textviews in a row to obtain equal width -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView android:id="@+id/tv_ref1"
android:layout_width="0dp" android:layout_height="wrap_content"
android:text="My"
android:layout_weight="1.0"
android:gravity="center" />
<TextView android:id="@+id/tv_ref2"
android:layout_width="0dp" android:layout_height="wrap_content"
android:text="My"
android:layout_weight="1.0"
android:gravity="center" />
<TextView android:id="@+id/tv_ref3"
android:layout_width="0dp" android:layout_height="wrap_content"
android:text="My ghghhfghjjghjkkhgfhfghfjhjh"
android:layout_weight="1.0"
android:gravity="center" />
</LinearLayout>
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/tv_ref1"
android:gravity="center"
android:text="Text Text Text"
android:textColor="@color/white" />
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/tv_ref1"
android:gravity="center_horizontal"
android:text="Med"
android:textColor="@color/white" />
<TextView
android:layout_width="wrap_content" …Run Code Online (Sandbox Code Playgroud) 我在一个滚动视图中有一个EditText字段LinearLayout.只要ScrollView不存在layout_weight="1.0"就让我EditText占据剩余的屏幕.但是一旦我将LinearLayout包装在一个中ScrollView,它就会改变EditText为单行,而layout_weight不起作用.
我的完整布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" >
<TextView android:id="@+id/titleTextView"
style="@style/TitleHeaderBarText"
android:text="@string/announcement" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="right" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Subject:"
android:textSize="16sp" />
<EditText
android:id="@+id/et_subject"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Announcement:"
android:textSize="16sp" />
<EditText
android:id="@+id/et_announcement"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0" />
<Button
android:id="@+id/btn_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="24sp"
android:paddingRight="24dp"
android:text="Save" />
</LinearLayout>
</ScrollView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我似乎不明白我做错了什么.任何建议请在如何让EditText上从内占据了屏幕的其余部分LinearLayout是在ScrollView.
谢谢.
编辑 再次面对同样的问题,这是我的布局.
<?xml …Run Code Online (Sandbox Code Playgroud) 当Activity不在前台时更新它是否可以.我不是在问它是否可以从后台线程完成.
考虑一下:
我有两个活动Activity-A和Activity-B.
我从Activity-A启动AsyncTask,然后转到Activity-B.一段时间后,AsyncTask结束,在onPostExecute()方法中,我尝试更新Activity-A中的图像.当Activity-B位于前台时,所有这一切都会发生.
以上场景是否合理,或者我必须等到Activity-A在前台更新其UI?
如果我可以在上面的场景中安全地更新UI,那么当Activity-A被终止或完成并且AsyncTask仍然完成并尝试更新UI时,我该怎么办?[假设我必须在更新UI之前检查isFinishing]
以上是我想要做的简化版本.我实际上有一个Custom ImageView,它从服务器加载图像并在请求完成后自行更新.所以我想知道如果视图在活动不在前台或已完成/销毁时自动更新,我必须担心什么情况.
编辑:这是一个正在运行的示例.
public class MainActivity extends Activity implements OnClickListener {
ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = (ImageView) findViewById(R.id.iv_image);
findViewById(R.id.btn_activity_2).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_activity_2:
new BackGroundTask().execute();
startActivity(new Intent(MainActivity.this, Activity2.class));
break;
}
}
private class BackGroundTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override …Run Code Online (Sandbox Code Playgroud) 我已经有一个谷歌开发者帐户,但我想为我即将发布的应用程序创建一个全新的谷歌开发者帐户.
我可以在两个市场账户中使用相同的包名吗?例如,如果我有谷歌开发者帐号1,使用共享包名称的应用程序(例如com.myawesomeapps.app1,com.myawesomeapps.app2)....我可以创建一个全新的goodle开发者帐户并使用相同的包名称(即com.myawesomeapps.ap3)?
我只是问,因为我想为这个新应用程序设置一个不同的谷歌开发者帐户,但保留我的包裹名称,如果不可能,我不想支付出版商费用.
提前致谢.