如何根据其父布局的大小调整视图大小.例如,我有一个RelativeLayout
填满整个屏幕,我想要一个儿童视图,比如说ImageView
,占据整个高度,宽度的1/2?
我试图重写所有的onMeasure
,onLayout
,onSizeChanged
,等我无法得到它的工作....
我正在尝试在代码中设置视图的宽度和高度,以显示我正在处理的免费应用的广告.除了此广告之外,所有UI都以XML格式完成.以下是显示广告的代码.它在onCreate
.
AdView adView = new AdView(this,"ad_url","my_ad_key",true,true);
LinearLayout layout = (LinearLayout) findViewById(R.id.testing);
adView.setAdListener(this);
layout.addView(adView);
Run Code Online (Sandbox Code Playgroud)
这会导致广告显示如下.正如您所看到的,宽度并不完全填满整个页面.
现在,当我将代码更改为此尝试设置大小时:
AdView adView = new AdView(this,"ad_url","my_ad_key",true,true);
LinearLayout layout = (LinearLayout) findViewById(R.id.testing);
adView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
adView.setAdListener(this);
layout.addView(adView);
Run Code Online (Sandbox Code Playgroud)
我明白了:
我尝试了所有不同的组合,FILL_PARENT
并且WRAP_CONTENT
所有组合都具有相同的结果.有什么我想念的吗?或者另一种方法,我可以让广告填充设备的宽度而不填充高度?非常感谢任何建议和帮助.
编辑当我尝试将其放入XML时我得到一个例外:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/main_layout">
<fragment
android:name="com.jasoncrosby.app.tipcalculatorfree.MainButtonFragment"
android:id="@+id/button_frag"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<com.adsdk.sdk.banner.AdView
android:id="@+id/banner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
> 09-09 22:39:43.448: E/AndroidRuntime(586): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jasoncrosby.app.tipcalculatorfree/com.jasoncrosby.app.tipcalculatorfree.MainActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class com.adsdk.sdk.banner.AdView
09-09 22:39:43.448: E/AndroidRuntime(586): at …
Run Code Online (Sandbox Code Playgroud) 是否可以在SQLite中使用UUID值作为主键?我发现关于这个主题的信息非常有限,所以我不确定SQLite是否支持UUID数据类型.我应该将UUID存储为字符串吗?
当我return
在一个finally
语句块中放置一个时,编译器会告诉我:
控制不能离开finally子句的主体
例:
try
{
}
catch
{
}
finally
{
return;
}
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
我有一个TextView对象,其目的是键入一个人的名字.我看了看这里,看到这textPersonName
是一个输入类型.所以我选择了那种输入类型,认为它会做我想要的.
但是,此输入类型不会将第一个字母大写.由于人们的名字以大写字母开头,我发现这很奇怪.这是故意的,还是Google的设计疏忽?
在任何情况下,我都选择textCapWords
了新的输入类型来确保每个单词都开始大写.将此输入类型用于某个人的名字会有任何不利之处吗?使用textPersonName
输入类型有什么好处?
我真的很挣扎.我正在winforms
visual studio中创建一个应用程序,并且需要一个每半小时打一次的后台计时器 - 这样做的目的是从服务器下载更新.
我尝试了几种不同的方法,但是由于教程/示例不好或者我自己的缺点,它们都失败了C#
.我认为到目前为止,向我展示我所尝试过的东西将是浪费时间,因为我认为我的尝试远远不够.
有没有人知道一种清晰简单的方法来实现C#
新手很容易理解的异步后台计时器?
使用大量的经过SQL Server
和SQL Server Compact
我最近开始使用Sqlite
.我目前正在Sqlite中创建表,并注意到在定义字符串列时似乎没有任何需要输入字符串长度限制.在SQL Server
255个字符的字符串中,数据类型定义如下:varchar(255)
.在SQL Server Compact
它中定义如下:nvarchar(255)
.
但是,Sqlite
看起来,列数据类型可以简单地定义为text
,而不输入任何大小限制.有没有办法在sqlite中定义大小限制?或者这甚至不是必要的?
我正在尝试构建一个结合静态和动态元素的UI.为此,我将我的活动划分为片段 - 然后通过替换片段而不是在活动之间导航来完成所有应用程序导航.
在我的主要活动布局中,我使用的是FrameLayout
:
<FrameLayout
android:id="@+id/mainframe"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_below="@id/topsection"
android:layout_above="@id/lowersection" />
Run Code Online (Sandbox Code Playgroud)
我有一个片段声明如下:
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragmentlayout, container, false);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在我的主要活动(扩展FragmentActivity并使用导入)中android.support.v4.app.FragmentActivity
,我试图将此片段加载到框架布局中.
MyFragment myf = new MyFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.mainframe, myf);
transaction.commit();
Run Code Online (Sandbox Code Playgroud)
我从许多其他示例中已经遵循了这一点,但是我在transaction.add()
命令上收到编译器错误,似乎没有其他人遇到过.
我收到的错误是:The method add(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, MyFragment)
.
为什么是这样?在 …
这个问题的扩展,我从数据库中提取日期并将其显示在网格中.
我有以下代码:
string date = "";
DateTime? dateSent;
if (row["DateSent"] != DBNull.Value)
dateSent = (DateTime)row["DateSent"];
else dateSent = null;
date = (dateSent.HasValue ? dateSent.Value.ToString("dd/MM/yyyy hh:mm:ss") : null);
Run Code Online (Sandbox Code Playgroud)
当我在这段代码的末尾添加一个断点时,我可以看到DateTime?
变量"dateSent"有一个24小时的时钟时间戳,例如14:50:34.但是,当我检查string
变量"date" 的值时- 它有一个12小时的时钟格式,例如02:50:34.
我不打算转换成12小时时钟格式.我有两个问题: