Java 约束布局有底部和顶部空间
我正在使用约束布局构建一个应用程序,但它的底部和顶部都有额外的空间。我找不到它们来自哪里。我从上到下检查了大概十次所有代码,但没有空白、空白或其他内容Java 约束布局有底部和顶部空间,java,android,android-layout,android-constraintlayout,android-relativelayout,Java,Android,Android Layout,Android Constraintlayout,Android Relativelayout,我正在使用约束布局构建一个应用程序,但它的底部和顶部都有额外的空间。我找不到它们来自哪里。我从上到下检查了大概十次所有代码,但没有空白、空白或其他内容 我尝试在底部的0点处添加指导原则,但也从该区域开始。我给边距和填充设置了-(负)值,但不起作用。我不知道还能做什么。你可以从截图上看到它的样子 public class MainActivity extends AppCompatActivity { private ColorWheel colorWheel = new Col
我尝试在底部的0点处添加指导原则,但也从该区域开始。我给边距和填充设置了-(负)值,但不起作用。我不知道还能做什么。你可以从截图上看到它的样子
public class MainActivity extends AppCompatActivity {
private ColorWheel colorWheel = new ColorWheel();
private TextView factTextView;
private TextView textViewId;
private TextView textViewTableName;
ImageView tableImageView;
AdView adView;
ImageView shareImageView;
ImageView favImageView;
float x1,x2,y1,y2;
int i = 1;
int adCounter = 0;
private ConstraintLayout constraintLayout;
String fact;
ArrayList<Fact> favList = new ArrayList<>();
private InterstitialAd mInterstitial;
AdRequest interAdRequest;
int favId;
String favTable;
Typeface typeface;
List<Fact> mData;
private DatabaseFacts db;
GradientDrawable shape;
@SuppressLint({"ClickableViewAccessibility", "SetTextI18n"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new DatabaseFacts(this);
db.copyDbIfNotExists();
shape = new GradientDrawable();
shape.setCornerRadius(40);
mData = new ArrayList<>();
MobileAds.initialize(this, "ca-app-pub-2469721886989416~7390658870");
adView = findViewById(R.id.adView);
AdRequest bannerAdRequest = new AdRequest.Builder().build();
adView.loadAd(bannerAdRequest);
interAdRequest = new AdRequest.Builder().build();
mInterstitial = new InterstitialAd(this);
mInterstitial.setAdUnitId("ca-app-pub-2469721886989416/9441000894");
mInterstitial.loadAd(interAdRequest);
factTextView = findViewById(R.id.factTextView);
constraintLayout = (ConstraintLayout) findViewById(R.id.container_main);
textViewId = findViewById(R.id.activity_main_text_view_id);
favImageView = findViewById(R.id.activity_main_fav_button);
shareImageView = findViewById(R.id.activity_main_image_view);
textViewTableName = findViewById(R.id.activity_main_did_u_know);
// tableImageView = findViewById(R.id.img_user);
// if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
// typeface = getResources().getFont(R.font.sourceserifproregular);
// }
factTextView.setTypeface(typeface);
Intent intent = getIntent();
final int choice = intent.getIntExtra("choice",0);
switch (choice) {
case 1:
textViewTableName.setText("General Facts");
factTextView.setText(db.getFact((readFromShared("defaultKey") - 1), DatabaseFacts.TABLE_GENERAL_NAME).getFact());
textViewId.setText("Fact " + (readFromShared("defaultKey") - 1) + " of " + db.getFactsCount(DatabaseFacts.TABLE_GENERAL_NAME));
if (db.getFact((readFromShared("defaultKey") - 1), DatabaseFacts.TABLE_GENERAL_NAME).isFavorite() == 0) {
favImageView.setImageResource(R.drawable.ic_favorite_border_black_24dp);
} else {
favImageView.setImageResource(R.drawable.ic_favorite_black_24dp);
}
ImageView leftClick = (ImageView) findViewById(R.id.activity_main_left_button);
leftClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
leftClickMethod("defaultKey", DatabaseFacts.TABLE_GENERAL_NAME);
}
});
ImageView rightClick = (ImageView) findViewById(R.id.activity_main_right_button);
rightClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rightClickMethod("defaultKey",DatabaseFacts.TABLE_GENERAL_NAME);
return;
}
});
favImageView.setOnClickListener(v -> handleFavorites("defaultKey", DatabaseFacts.TABLE_GENERAL_NAME));
break;
public类MainActivity扩展了AppCompatActivity{
private ColorWheel ColorWheel=新ColorWheel();
私有文本视图factTextView;
私有文本视图文本视图ID;
私有TextView textViewTableName;
ImageView表ImageView;
AdView AdView;
ImageView共享ImageView;
图像视图favImageView;
浮球x1、x2、y1、y2;
int i=1;
int adCounter=0;
私有约束约束约束约束约束;
串事实;
ArrayList favList=新的ArrayList();
私人间质;
请求间请求;
int favId;
字符串可变;
字体;
列出mData;
私有数据库;
渐变拉深形状;
@SuppressLint({“ClickableViewAccessibility”,“SetTextI18n})
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db=新数据库事实(本);
db.copyDbIfNotExists();
形状=新的GradientDrawable();
形状。设置角半径(40);
mData=newarraylist();
MobileAds.initialize(这是“ca-app-pub-246972186989416~7390658870”);
adView=findviewbyd(R.id.adView);
AdRequest BANDERADREQUEST=新建AdRequest.Builder().build();
adView.loadAd(bannerAdRequest);
interAdRequest=新建AdRequest.Builder().build();
mInterstitial=新的间质(本);
Minterstital.setAdUnitId(“ca-app-pub-246972186989416/9441000894”);
mInterstitial.loadAd(InteraderQuest);
factTextView=findViewById(R.id.factTextView);
constraintLayout=(constraintLayout)findViewById(R.id.container\u main);
textViewId=findViewById(R.id.activity\u main\u text\u view\u id);
favImageView=findviewbyd(R.id.activity\u main\u fav\u按钮);
shareImageView=findViewById(R.id.activity\u main\u image\u view);
textViewTableName=findViewById(R.id.activity\u main\u don\u know);
//tableImageView=findViewById(R.id.img_用户);
//if(android.os.Build.VERSION.SDK\u INT>=android.os.Build.VERSION\u code.O){
//typeface=getResources().getFont(R.font.sourceserifproregular);
// }
factTextView.setTypeface(字体);
Intent=getIntent();
final int choice=intent.getIntExtra(“choice”,0);
开关(选择){
案例1:
textViewTableName.setText(“一般事实”);
factTextView.setText(db.getFact((readFromShared(“defaultKey”)-1),DatabaseFacts.TABLE_GENERAL_NAME).getFact();
textViewId.setText(“事实”+(readFromShared(“defaultKey”)-1)+“数据库事实”表的“+db.getfactscont(DatabaseFacts.TABLE_GENERAL_NAME));
if(db.getFact((readFromShared(“defaultKey”)-1)、DatabaseFacts.TABLE\u GENERAL\u NAME.isFavorite()==0){
favImageView.setImageResource(R.drawable.ic_favorite_border_black_24dp);
}否则{
favImageView.setImageResource(R.drawable.ic_favorite_black_24dp);
}
ImageView leftClick=(ImageView)findViewById(R.id.activity\u main\u left\u按钮);
leftClick.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
leftClickMethod(“defaultKey”,DatabaseFacts.TABLE\u GENERAL\u NAME);
}
});
ImageView右键单击=(ImageView)findViewById(R.id.activity\u main\u right\u按钮);
右键单击.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
rightClickMethod(“defaultKey”,DatabaseFacts.TABLE\u GENERAL\u NAME);
返回;
}
});
setOnClickListener(v->handleFavorites(“defaultKey”,DatabaseFacts.TABLE_GENERAL_NAME));
打破
从品牌
和应用程序:布局\u约束tobottom\u tototopof=“@id/guideline”
中删除应用程序:布局\u约束toBottomOf=“@id/LeftRight”
从adView
您不能为顶部和底部设置约束,因为它会将您的
视图居中于这两个约束之间。左右(开始、结束)相同,但您在此处有匹配父项,因此不会出现此问题(可视化-如果您设置了wrap\u content
,视图也会转到中心)。我认为这不是根布局。请共享上面内容放置的布局(是包含片段主机的布局还是类似的布局)我不明白你指的是哪种布局或代码,但我添加了java。这在@SkypeDogg中起作用,这个解释真的很有帮助:)“你不能为顶部和底部设置约束,因为它会将你的视图集中在这两个约束之间。左和右(开始、结束)也是如此。”,但这里有match_parent,因此不会出现此问题。“我很高兴能提供帮助;)如果只对俯视图添加一个约束,如何防止底部项目在较小的屏幕上离开屏幕?视情况而定,有不同的限制
public class MainActivity extends AppCompatActivity {
private ColorWheel colorWheel = new ColorWheel();
private TextView factTextView;
private TextView textViewId;
private TextView textViewTableName;
ImageView tableImageView;
AdView adView;
ImageView shareImageView;
ImageView favImageView;
float x1,x2,y1,y2;
int i = 1;
int adCounter = 0;
private ConstraintLayout constraintLayout;
String fact;
ArrayList<Fact> favList = new ArrayList<>();
private InterstitialAd mInterstitial;
AdRequest interAdRequest;
int favId;
String favTable;
Typeface typeface;
List<Fact> mData;
private DatabaseFacts db;
GradientDrawable shape;
@SuppressLint({"ClickableViewAccessibility", "SetTextI18n"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new DatabaseFacts(this);
db.copyDbIfNotExists();
shape = new GradientDrawable();
shape.setCornerRadius(40);
mData = new ArrayList<>();
MobileAds.initialize(this, "ca-app-pub-2469721886989416~7390658870");
adView = findViewById(R.id.adView);
AdRequest bannerAdRequest = new AdRequest.Builder().build();
adView.loadAd(bannerAdRequest);
interAdRequest = new AdRequest.Builder().build();
mInterstitial = new InterstitialAd(this);
mInterstitial.setAdUnitId("ca-app-pub-2469721886989416/9441000894");
mInterstitial.loadAd(interAdRequest);
factTextView = findViewById(R.id.factTextView);
constraintLayout = (ConstraintLayout) findViewById(R.id.container_main);
textViewId = findViewById(R.id.activity_main_text_view_id);
favImageView = findViewById(R.id.activity_main_fav_button);
shareImageView = findViewById(R.id.activity_main_image_view);
textViewTableName = findViewById(R.id.activity_main_did_u_know);
// tableImageView = findViewById(R.id.img_user);
// if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
// typeface = getResources().getFont(R.font.sourceserifproregular);
// }
factTextView.setTypeface(typeface);
Intent intent = getIntent();
final int choice = intent.getIntExtra("choice",0);
switch (choice) {
case 1:
textViewTableName.setText("General Facts");
factTextView.setText(db.getFact((readFromShared("defaultKey") - 1), DatabaseFacts.TABLE_GENERAL_NAME).getFact());
textViewId.setText("Fact " + (readFromShared("defaultKey") - 1) + " of " + db.getFactsCount(DatabaseFacts.TABLE_GENERAL_NAME));
if (db.getFact((readFromShared("defaultKey") - 1), DatabaseFacts.TABLE_GENERAL_NAME).isFavorite() == 0) {
favImageView.setImageResource(R.drawable.ic_favorite_border_black_24dp);
} else {
favImageView.setImageResource(R.drawable.ic_favorite_black_24dp);
}
ImageView leftClick = (ImageView) findViewById(R.id.activity_main_left_button);
leftClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
leftClickMethod("defaultKey", DatabaseFacts.TABLE_GENERAL_NAME);
}
});
ImageView rightClick = (ImageView) findViewById(R.id.activity_main_right_button);
rightClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rightClickMethod("defaultKey",DatabaseFacts.TABLE_GENERAL_NAME);
return;
}
});
favImageView.setOnClickListener(v -> handleFavorites("defaultKey", DatabaseFacts.TABLE_GENERAL_NAME));
break;