我有一个水平线性布局,有3个视图.打开和关闭按钮和文本视图.加载时,关闭按钮设置为
setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)
所以它只显示一个imageview,open和带有一些文本的textview.我也在用
android:animateLayoutChanges="true"
Run Code Online (Sandbox Code Playgroud)
在我的父布局上,在打开和关闭时为textview设置动画.一切正常,除非我打开/关闭时我可以看到两个按钮的动画分别设置为GONE和VISIBLE.我不想在这两个ImageView上播放动画.关于如何删除这两个视图上的动画的任何想法?提前致谢.
XML文件
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:id="@+id/CuFScrollView"
style="@style/ScrollView"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#A0A0A0"
>
<LinearLayout
style="@style/LinearLayoutVertical"
android:paddingTop="20dp"
>
<TextView
android:text="Basic Management Plan for Tactical Field Care"
android:id="@+id/header"
style="@style/Header"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#606060"
android:padding="5dp"
android:animateLayoutChanges="true"
>
<ImageView
android:id="@+id/open"
android:src="@drawable/open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:onClick="open"
android:layout_gravity="center_vertical"
android:animateLayoutChanges="false"
/>
<ImageView
android:id="@+id/close"
android:src="@drawable/close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:onClick="close"
android:layout_gravity="center_vertical"
android:animateLayoutChanges="false"
/>
<TextView
android:id="@+id/stepOne"
android:text="Step 1:"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="0dp"
style="@style/Bullet"
/>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Java文件
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.ScrollView; …
Run Code Online (Sandbox Code Playgroud) 下面应该显示一个占据整个屏幕的滚动视图,除了足够大的一小部分底部的按钮。当我运行它时,按钮/布局根本不显示。只有滚动视图与我在滚动视图中拥有的其他视图一起占据整个屏幕。想法?
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.th3ramr0d.armybodyfatcalculator.MainActivity"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"
/>
</LinearLayout>
</LinearLayout
Run Code Online (Sandbox Code Playgroud) A TextView
和Button
以编程方式创建并添加到预先存在的垂直布局中,使其看起来像一个垂直的视图列表.这些视图仅基于用户将数据输入到edittext
该数据并将该数据保存到数据中而创建ArrayList
.
如何onClick
向我的"垃圾"按钮添加一个函数,该按钮以编程方式创建,允许他们删除与之关联的视图.
public static ArrayList<String> deckNameArray = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout mainLayout = (LinearLayout)findViewById(R.id.mainLayout);
for(int i = 0; i < deckNameArray.size(); i++)
{
LinearLayout layout = new LinearLayout(this);
if ((i % 2) == 0) {
layout.setBackgroundColor(Color.CYAN);
} else {
layout.setBackgroundColor(Color.WHITE);
}
layout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(layoutParams);
layout.setPadding(10, 5, 10, 5);
layout.setWeightSum(5);
mainLayout.addView(layout);
LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT, 4f);
TextView …
Run Code Online (Sandbox Code Playgroud) 我有两个ImageView
。我想将一个移到另一个之上。
当我尝试检索ImageView
s 位置之一的值以将另一个移动到它时,我在 x 和 y 上都得到 0。
我曾尝试使用getLeft
/ getTop
、getX()
/getY()
和getPositionOnScreen()
; 它们都返回 0。两个视图都在同一个约束布局内。
ImageView
返回 0 的XML :
<ImageView
android:id="@+id/playerOneCard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="64dp"
android:layout_marginStart="32dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toTopOf="@+id/imageView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
app:srcCompat="@drawable/card" />
Run Code Online (Sandbox Code Playgroud)
返回位置的代码:
int x = playerOneCardMove.getLeft();
int y = playerOneCardMove.getTop();
Run Code Online (Sandbox Code Playgroud)
我还使用了以下内容:
int x = playerOneCardMove.getX();
int y = playerOneCardMove.getY();
Run Code Online (Sandbox Code Playgroud)
和:
int[] imageCoordinates = new int[2];
playerOneCard.getLocationOnScreen(imageCoordinates);
int x = imageCoordinates[0];
int y = imageCoordinates[1];
Run Code Online (Sandbox Code Playgroud)
执行onClick
移动卡片的代码:
public …
Run Code Online (Sandbox Code Playgroud) 我有一个附加到按钮的函数,当按下该按钮时,会从数组列表中删除一个项目,然后显示一个提示“项目已删除!”。如果我多次按下删除按钮,那么所有的吐司都会显示出来,使其看起来像一个非常长的吐司显示。我想每次在显示新的 toast 之前取消 toast。我是这样展示我的吐司的
public void removeItem(View view)
{
Toast.makeText(getApplicationContext(),"Text",toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
现在我试图制作一个 toast 对象,取消它,设置文本,然后每次按下按钮时显示它。这样之前的toast就被取消了。不确定这是否是正确的方法。
public void removeItem(View view)
{
Toast toast = Toast.makeText(this,"",Toast.LENGTH_SHORT);
toast.cancel();
toast.setText("Text");
toast.show();
}
Run Code Online (Sandbox Code Playgroud)
这最终什么也没显示。有什么帮助吗?